检查字符串中的任何单词是否在数组中

时间:2014-02-15 04:43:33

标签: javascript jquery

我有一个巨大的列表(800项)和一个非常长的字符串。我想得到数组中与字符串部分匹配并存储在变量中的第一项。

目前我的代码:

for (var i = 0; i<gigantic_genre_array.length; i++) {
  var test_genre = thelongstr.indexOf(gigantic_genre_array[i]);
  if(test_genre != -1) {
    tag1 = gigantic_genre_array[test_genre];
    alert(tag1);
  }
}

这不像我想的那样有效,有什么建议吗?

3 个答案:

答案 0 :(得分:3)

试试这个:

for(var i = 0; i<gigantic_genre_array.length; i++){
          var test_genre = thelongstr.indexOf(gigantic_genre_array[i]);
          if(test_genre!=-1){
            tag1 = gigantic_genre_array[i];
            alert(tag1);
          }
        }

答案 1 :(得分:0)

反过来这个过程也很有效。

var wordArray = thelongstr.split(' ');

for(var i=0,len = wordArray.length; i < len; i++)
{
  if(gigantic_genre_array.indexOf(wordArray[i]) > -1)
   {
     alert(wordArray[i]);
   }
}

答案 2 :(得分:0)

您可以根据数组创建一个RegExp,并根据字符串进行测试:

var gigantic_genre_array=['foo','bar','foobar'];
var thelongstr='where is the next bar';

alert(new RegExp(gigantic_genre_array.join('|')).exec(thelongstr)||[null][0]);
//returns bar