javascript:有没有优雅的方法来检查字符串是否包含数组中给出的任何字符

时间:2014-10-23 13:00:51

标签: javascript arrays string

我的JavaScript代码中有string(纯JavaScript,没有jQuery或任何其他libs)。我还有一个array,其中包含characters,可以在字符串中找到。我需要检查字符串是否包含任何这些字符。当然,可以使用found等临时变量和数组元素迭代来完成。

但有没有办法编写漂亮而紧凑的代码?以防万一,我使用ES5(IE9 +)。

我希望实现像

这样的东西
var str = "Here is the string",
    chars = ['z','g'];

if (str.containsAnyOf(chars)) {
   ...    
}

编写这段代码的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

您可以使用Array.prototype.some,就像这样

if (chars.some(function(c) { return str.indexOf(c) !== -1; })) {
     // Atleast one of the characters is present
};

答案 1 :(得分:0)

考虑使用正则表达式:



var str = "Here is the string",
    chars = ['z','g'];

// constructs the following regexp: /[zg]/
if (new RegExp("[" + chars.join('') + "]").test(str)) {
      alert("Contains!");
}