Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript:有没有优雅的方法来检查字符串是否包含数组中给定的任何字符_Javascript_Arrays_String - Fatal编程技术网

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

javascript:有没有优雅的方法来检查字符串是否包含数组中给定的任何字符,javascript,arrays,string,Javascript,Arrays,String,我的JavaScript代码中有一个字符串(纯JavaScript,不涉及jQuery或任何其他LIB)。我还有一个数组,它包含字符串中的字符。我需要检查字符串是否包含这些字符。当然,可以使用临时变量,如found和数组元素迭代来完成 但是有没有什么方法可以编写漂亮紧凑的代码呢?以防万一,我使用ES5(IE9+) 我想达到这样的目标 var str = "Here is the string", chars = ['z','g']; if (str.containsAnyOf(char

我的JavaScript代码中有一个
字符串
(纯JavaScript,不涉及jQuery或任何其他LIB)。我还有一个
数组
,它包含字符串中的
字符
。我需要检查字符串是否包含这些字符。当然,可以使用临时变量,如
found
和数组元素迭代来完成

但是有没有什么方法可以编写漂亮紧凑的代码呢?以防万一,我使用ES5(IE9+)

我想达到这样的目标

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

if (str.containsAnyOf(chars)) {
   ...    
}
编写这段代码的最佳方法是什么?

您可以这样使用

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

考虑使用正则表达式:

var str=“这是字符串”,
字符=['z','g'];
//构造以下regexp:/[zg]/
if(新的RegExp(“[”+字符连接(“+”])测试(str)){
警报(“包含!”);

}
在我看来,编写自己的函数是最好的选择,因为它可以提供最佳性能:)您也可以尝试使用contains()函数