我的JavaScript代码中有string
(纯JavaScript,没有jQuery或任何其他libs)。我还有一个array
,其中包含characters
,可以在字符串中找到。我需要检查字符串是否包含任何这些字符。当然,可以使用found
等临时变量和数组元素迭代来完成。
但有没有办法编写漂亮而紧凑的代码?以防万一,我使用ES5(IE9 +)。
我希望实现像
这样的东西var str = "Here is the string",
chars = ['z','g'];
if (str.containsAnyOf(chars)) {
...
}
编写这段代码的最佳方法是什么?
答案 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!");
}