文字列に配列の値のいずれかが含まれているかどうかを判断するにはどうすればよいですか?
例えば:
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);
}
これは明らかに機能しません...可能性は十分にありますが、ハハハ
文字列に配列の値のいずれかが含まれているかどうかを判断するにはどうすればよいですか?
例えば:
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);
}
これは明らかに機能しません...可能性は十分にありますが、ハハハ
正規表現を作成するための構文が正しくありません。その正規表現は、文字列「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');
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");
}
}