簡體   English   中英

如何檢查字符串是否包含數組中的子字符串並將其拆分

[英]How to check if a string contains a substring from an array and split it

我有一個像這樣的字符串數組:

var matchCodFisc = ["C.F.", "CF", "Cod.Fisc.", "C.F"]

並且我想檢查我的字符串中是否存在該子字符串(例如var myString= "Cod.Fisc.FGDTFR34L16G643W" )(本例中為“ Cod.Fisc”)。 如果找到子字符串,我想將字符串分成兩部分,例如["Cod.Fisc", "FGDTFR34L16G643W"] 如何使用JavaScript做到這一點?

您可以找到該字符串,然后剩下的字符串。 也許最好按長度降序對模式數組進行排序,因為它會先找到最長的字符串。

 var matchCodFisc = ["CF", "CF", "Cod.Fisc.", "CF"], string = "Cod.Fisc.FGDTFR34L16G643W", found = matchCodFisc .sort((a, b) => b.length - a.length) .find(s => string.startsWith(s)), result = [found, string.slice(found.length)]; console.log(result); 

您可以使用查找,包含和拆分

  • 首先使用findincludesmatchChodFiscfind匹配值
  • 根據found值創建一個正則表達式模式
  • 使用正則表達式拆分,我們構建並填充空值

 var matchCodFisc = ["CF", "CF", "Cod.Fisc.", "CF"] var myString= "Cod.Fisc.FGDTFR34L16G643W" let found = matchCodFisc.find(val=> myString.includes(val)) let regex = new RegExp(`(${found})`, 'gi') let splited = myString.split(regex).filter(Boolean) console.log(splited) 

您可以使用Str.includes()使用Array#findIndex方法

 var matchCodFisc = ["CF", "CF", "Cod.Fisc.", "CF"] var myString = "Cod.Fisc.FGDTFR34L16G643W"; var resindex = matchCodFisc.findIndex(a => myString.includes(a)); console.log([ matchCodFisc[resindex], myString.split(matchCodFisc[resindex])[1] ]) 

使數組成為正則表達式:

 const matchCodFisc = ["CF", "CF", "Cod.Fisc.", "CF"]; const myString = "Cod.Fisc.FGDTFR34L16G643W"; const splitRegex = new RegExp('('+matchCodFisc.join('|')+')\\\\w+', 'g'); console.log(splitRegex); let result = splitRegex.exec(myString) console.log(result[1]) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM