非常直截了当。在javascript中,我需要检查字符串是否包含数组中持有的任何子字符串。
当前回答
如果数组不大,可以使用indexOf()循环并逐个检查每个子字符串。或者,您可以构造一个带有子字符串作为替代的正则表达式,这可能更有效,也可能不更有效。
其他回答
对于用谷歌搜索的人来说,
确切的答案应该是。
const substrings = ['connect', 'ready'];
const str = 'disconnect';
if (substrings.some(v => str === v)) {
// Will only return when the `str` is included in the `substrings`
}
如果数组不大,可以使用indexOf()循环并逐个检查每个子字符串。或者,您可以构造一个带有子字符串作为替代的正则表达式,这可能更有效,也可能不更有效。
借鉴T.J. Crowder的解决方案,我创建了一个原型来处理这个问题:
Array.prototype.check = function (s) {
return this.some((v) => {
return s.indexOf(v) >= 0;
});
};
这太迟了,但我刚刚遇到了一个问题。在我自己的项目中,我使用以下方法来检查字符串是否在数组中:
["a","b"].includes('a') // true
["a","b"].includes('b') // true
["a","b"].includes('c') // false
通过这种方式,你可以获取一个预定义数组并检查它是否包含字符串:
var parameters = ['a','b']
parameters.includes('a') // true
单线解决方案
substringsArray.some(substring=>yourBigString.includes(substring))
如果子字符串存在\不存在,则返回true\false
需要ES6支持