如何确定字符串是否包含数组中的某个值?
例如:
var a = ["abc","def","ghi"];
var s = "jskljfdkljflkjk abc jskfdjklsj";
for(var i=0;i<a.length;i++){
if(/a[i]/.test(s)) alert(1);
}
这显然不起作用......我知道这很可能虽然哈哈哈
答案 0 :(得分:3)
您创建正则表达式的语法不正确。该正则表达式仅对字符串“ai”返回true。而且你正在测试阵列的正则表达式。我想你的意思是:
if(RegExp(a[i]).test(s)) alert(1);
在这种情况下,你最好只使用indexOf。它会更快,你不需要逃避任何角色。
var a = ["abc","def","ghi"],
s = "jskljfdkljflkjk abc jskfdjklsj";
for(var i = 0, l = a.length; i < l; i++)
if(s.indexOf(a[i])+1) alert('string s contains a value from array a');
答案 1 :(得分:1)
function doesStringContainElementFromArray(str, arr)
{
for ( var i=0; i<arr.length; i++)
{
if ( str.indexOf(arr[i]) != -1 )
return true;
}
return false;
}
答案 2 :(得分:1)
只需使用“RegExp”函数/构造函数(如果你真的需要regexps)
if (RegExp(a[i]).test(a)) {
alert(1);
}
如果不这样做,只需使用.indexOf
if (s.indexOf(a[i]) != -1) {
alert("a[i]="+a[i]+" is matched in " + s);
}
答案 3 :(得分:1)
您可以使用JavaScript的搜索方法
var a = ["abc","def","ghi"];
var s = "jskljfdkljflkjk abc jskfdjklsj";
for(var i=0;i<a.length;i++){
if(s.search( a[i] ) != -1)
{
alert("found");
}
}