JavaScript正则表达式无法获得匹配的组

时间:2013-03-03 00:01:19

标签: javascript regex grouping

我正在尝试使用带有exec函数的JavaScript正则表达式,并希望获得组的匹配。我无法弄清楚为什么我没有匹配。

这是我的代码:

var elementClass="validate[required]"
var myRegexp = /validate\\[(*)\\]/g;
var match = myRegexp.exec(elementClass);
每次

匹配为空。我无法弄清楚为什么。它应该是“必需的”。

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

请改用:

var myRegexp = /validate\[(.*)\]/;

首先,你只需要一个反斜杠来逃避 - 否则你正在寻找一个字面反斜杠,然后是你试图逃脱的特殊含义。

其次,*只意味着“零或更多的最后一件事”,在这种情况下没有任何意义,因为那里什么都没有。 .表示“任何东西”(嗯,差不多),所以.*表示“任意数量的任何东西”。

最后,此处不需要g标记,特别是如果您尝试捕获结果的一部分。

答案 1 :(得分:2)

1)你需要很多斜杠

var myRegexp = /validate\[(.*?)\]/g;

2)如果只想匹配方括号中的部分,则应使用组

var result = match[1];
相关问题