【发布时间】:2012-04-13 05:21:19
【问题描述】:
我的正则表达式和 Javascript 有点生疏。我有以下字符串变量:
var subject = "/admin.php?page=settings&tabs_added[114787535263592]=1&tabs_added[217770811582323]=1&tabs_added[198738186831542]=1"
我想提取114787535263592、217770811582323和198738186831542。
我尝试使用非捕获括号(?:):
var regexp = /(?:tabs_added[\[])(\d)+(?:[\]])/;
var pageid = regexp.exec(subject);
但是我得到的结果 (["tabs_added[114787535263592]", "2"]) 不是我所期望的——我做错了什么?这是一个 jsFiddle:http://jsfiddle.net/KgpAw/
【问题讨论】:
-
您的
(?:)组看起来不错,但(?+)看起来很可疑。 -
@andrewcooke 抱歉,我在粘贴时搞砸了。这是
?:。 -
@T.J.Crowder 你完全正确。我添加了一个指向 jsFiddle 的链接,它显示了结果。
标签: javascript regex