使用 JavaScript 数组查找字符串中的子字符串
为了确定字符串是否包含数组中的任何子字符串,JavaScript 提供了灵活的方法.
Array Some Method
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