JS,在数组中搜索不起作用

时间:2011-05-27 00:13:48

标签: javascript arrays

 0. <script type="text/javascript">
 1.   var games = new GameList("bets");
 2.   games = games.getGames(); //an Array, example: games = ("1313_55", "3353_65");
 3.   
 4.   var game_ids = $.map(games, function(_g) {     
 5.     return _g.split('_')[0];
 6.   });
 7.   
 8.   idsList = game_ids.join(",");
 9.   var _srch = -1;
10.   for(var i = 0, j = idsList.length; i < j && _srch == -1; i++)
11.   {
12.     _srch = idsList.search(/ids[i]/i);
13.   }
14. </script>

第12行不起作用。有任何想法吗? 井线12工作,但不能正确返回结果。

我想做什么: 例如:

我正在搜索字符串中的名字:

var str = "my name is VuRaL"; 
_srch = str.search(/VuRaL/i); 

//这就是我想做的事。

str.search(/武拉尔/ I); 只有VuRaL需要像ids [1]等一样的数组值。

示例:str.search(/ ids [i] / i);

谢谢!

3 个答案:

答案 0 :(得分:1)

庵。第8行将您的数组转换为字符串。第10行让你逐个字符地迭代这个字符串。你想在整体字符串中找到一些东西吗?如果是这样,你不需要你的for(){}循环。

答案 1 :(得分:0)

这是你想要的吗?

 _srch = idsList.search(new RegExp("ids[" + i + "]", 'i'));

如果你想自己搜索括号,你需要像这样逃避它们:

_srch = idsList.search(new RegExp("ids\\[" + i + "\\]", 'i'));

答案 2 :(得分:0)

/ids[i]/是一个正则表达式字面值。它实际上并没有插入变量i的值。此外,[]在JavaScript正则表达式中有special meaning,因此您需要转义它们。用这个替换第12行:

_srch = idsList.search(new RegExp('ids\\[' + i + '\\]', 'i'));