У меня есть массив строк, например:
var matchCodFisc = ["C.F.", "CF", "Cod.Fisc.", "C.F"]
и я хочу проверить, есть ли в моей строке
(например, var myString= "Cod.Fisc.FGDTFR34L16G643W") существует эта подстрока (в данном случае «Cod.Fisc»).
Если я нашел подстроку, я хочу разделить строку на две части, например ["Cod.Fisc", "FGDTFR34L16G643W"]. Как я могу сделать это с помощью JavaScript?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ты можешь найти веревку и взять остальные. Может быть, лучше отсортировать массив шаблонов по убыванию длины, потому что он сначала находит самую длинную строку.
var matchCodFisc = ["C.F.", "CF", "Cod.Fisc.", "C.F"],
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.info(result);Вы можете использовать поиск, включение и разделение
matchChodFisc, используя find и includesfoundvar matchCodFisc = ["C.F.", "CF", "Cod.Fisc.", "C.F"]
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.info(splited)Вы можете использовать метод Array#findIndex, используя Str.includes()
var matchCodFisc = ["C.F.", "CF", "Cod.Fisc.", "C.F"]
var myString = "Cod.Fisc.FGDTFR34L16G643W";
var resindex = matchCodFisc.findIndex(a => myString.includes(a));
console.info([
matchCodFisc[resindex],
myString.split(matchCodFisc[resindex])[1]
])Превратите свой массив в регулярное выражение:
const matchCodFisc = ["C.F.", "CF", "Cod.Fisc.", "C.F"];
const myString = "Cod.Fisc.FGDTFR34L16G643W";
const splitRegex = new RegExp('('+matchCodFisc.join('|')+')\\w+', 'g');
console.info(splitRegex);
let result = splitRegex.exec(myString)
console.info(result[1])
Это круто, +1, я делал часть среза с регулярным выражением, и фильтровать это лучше