使用 JavaScript 数组查找字符串中的子字符串
为了确定字符串是否包含数组中的任何子字符串,JavaScript 提供了灵活的方法.
Array Some Method
some 方法迭代数组,提供回调函数来测试每个元素。要检查子字符串,请使用 indexOf() 方法搜索字符串中的每个数组元素:
<code class="js">if (substrings.some(function(v) { return str.indexOf(v) >= 0; })) { // There's at least one substring match }</code>
正则表达式
正则表达式提供了一种强大的方法来匹配文本模式。要搜索字符串中数组中的任何子字符串,请创建一个将所有子字符串作为备用选项的正则表达式,并使用 test() 方法:
<code class="js">const regex = new RegExp(substrings.join("|")); if (regex.test(str)) { // At least one substring matches }</code>
示例
让我们考虑一个子字符串数组:
<code class="js">const substrings = ["one", "two", "three"];</code>
有子字符串匹配的字符串
<code class="js">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("|")));</code>
没有子字符串匹配的字符串
<code class="js">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("|")));</code>
结果
Test Method | String with Match | String without Match |
---|---|---|
Array some | someMethodMatch = true | someMethodNoMatch = false |
Regular expression | regexMatch = true | regexNoMatch = null |
以上是如何在 JavaScript 中检查字符串是否包含数组中的任何子字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!