[英]how to check if a string contains a substring from an array of strings in JavaScript
[英]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);
您可以使用查找,包含和拆分
find
和includes
從matchChodFisc
中find
匹配值 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.