2011-05-27 42 views
0
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正常工作,但不能正确返回结果。JS,搜索阵列不工作

我所试图做的事: 例子:

我在搜索字符串名称:

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

//多数民众赞成我想做的事情。

str.search(/ VuRaL/i); 只有VuRaL需要像数组值ids [1]等

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

谢谢!

+0

同意@ John的回答。什么是所有的字符串分裂和加入? – 2011-05-27 00:20:32

+0

请忘记分裂和加入,它很长很难解释所有的事情。我在一个数组中使用ID和引脚,并将它们全部保存在一个cookie中(如数组)。 – Racooon 2011-05-27 00:34:56

+0

游戏是数组并且包含= Array(“1234_12”,“3333_44”,“5555_4”); ids是数组并且包含= Array(“1234”,“3333”,“5555”); – Racooon 2011-05-27 00:36:22

回答

0

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

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

只是)结束。我现在检查它 – Racooon 2011-05-27 00:22:52

+0

哎呀!对不起,错字。 – 2011-05-27 00:24:01

+0

对不起,它不工作。 – Racooon 2011-05-27 00:30:28

0

这是你要去的吗?

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

在你想要搜索的括号本身的情况下,你需要逃避他们,像这样:

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

正则表达式中的Syntaxerror。你能改正它吗? – Racooon 2011-05-27 00:20:02

+0

@Vural:对不起,我相信''我应该是一个字符串。再次尝试上面的代码。 – Shaz 2011-05-27 00:21:27

1

Um。第8行将你的数组转换成一个字符串。第10行让你逐个字符地遍历这个字符串。你是否想在整个字符串中找到某些东西?如果是的话,你不需要for(){}循环。

+0

我正在寻找double值,我认为这比使用2个循环(IMO)更快,并且IDS是动态的。 – Racooon 2011-05-27 00:25:27

+0

@Vural Acar - 通常,没有。你的正则表达式可能比简单的双循环迭代慢。尽管较少的代码行意味着更快,但并不总是成立。不过,我想我对你想要做的事感到困惑。什么是ids数组? – 2011-05-27 00:33:02