2011-05-16 70 views
0

我想在这样的字符串,在方括号中提取号码:简单的正则表达式模式,提取号码

"Item5Line[14].Id" 

我至今导致在Javascript中的错误:

index = Id.attr('name').match(/\[\d\d?\d?\]); 

我很新的正则表达式,所以请温柔:)提前

谢谢!

回答

2

尝试:index = Id.attr('name').match(/\[(\d+)\]/);

然后你就可以在索引1

+0

谢谢乔希。我是(像下面提到的每个人)错过了关闭“/”。这个表达当然更清晰。我喜欢这个帮助! – 2011-05-16 18:07:09

+0

不客气,很高兴帮助。 – 2011-05-16 18:29:21

+0

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp涵盖了正则表达式。你可能也想看到String对象(match())。如果你没有意识到使用(),当你得到你的“索引”值时,它实际上是一个数组。该数组的元素按照左paren的顺序匹配嵌入在正则表达式中的括号对。因此,index [0]以字符串的形式给出完整匹配,index [1]给出由括号内的部分(即“14”)组成的字符串。 尝试url:javascript:index =/hell(owo)rld/.exec(“helloworld”);警报(指数[1]); – 2011-05-16 18:54:26

2

它看起来像你缺少收盘/在你的正则表达式

index = Id.attr('name').match(/\[\d\d?\d?\]/); 
             ^need this closing/

工作样本:http://jsfiddle.net/CGnUz/

此外,@Josh M.具有较好的正则表达式。

1
index = Id.attr('name').match(/\[\d\d?\d?\]); 

你忘了在末尾添加/拔出了比赛。