2

文字列に配列の値のいずれかが含まれているかどうかを判断するにはどうすればよいですか?

例えば:

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);
}

これは明らかに機能しません...可能性は十分にありますが、ハハハ

4

4 に答える 4

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');
于 2013-05-24T14:36:03.053 に答える
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");
  }
}
于 2013-05-24T14:39:38.970 に答える