Поиск подстрок в строке с помощью массивов JavaScript
Чтобы определить, содержит ли строка какие-либо подстроки из массива, JavaScript предлагает гибкие подходы .
Некоторый метод массива
Метод some выполняет итерацию по массиву, предоставляя функцию обратного вызова для проверки каждого элемента. Чтобы проверить наличие подстрок, используйте метод indexOf() для поиска каждого элемента массива в строке:
if (substrings.some(function(v) { return str.indexOf(v) >= 0; })) {
// There's at least one substring match
}
Регулярное выражение
Регулярные выражения предлагают мощный способ сопоставления текстовых шаблонов. Чтобы найти любую подстроку в массиве внутри строки, создайте регулярное выражение со всеми подстроками в качестве альтернативных вариантов и используйте метод test():
const regex = new RegExp(substrings.join("|"));
if (regex.test(str)) {
// At least one substring matches
}
Пример
Рассмотрим массив подстрок:
const substrings = ["one", "two", "three"];
Строка с совпадением подстроки
const str = "This string includes \"one\".";
// Using array some method
const someMethodMatch = substrings.some(v => str.includes(v));
// Using regular expression
const regexMatch = str.match(new RegExp(substrings.join("|")));
Строка без совпадения подстроки
const str = "This string doesn't have any substrings.";
// Using array some method
const someMethodNoMatch = substrings.some(v => str.includes(v));
// Using regular expression
const regexNoMatch = str.match(new RegExp(substrings.join("|")));
Результаты
Тест Метод | Строка с совпадением | Строка без совпадения |
---|---|---|
Array some | someMethodMatch = true | someMethodNoMatch = false |
Регулярное выражение | regexMatch = true | regexNoMatch = null |
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3