我正在尝试将 JavaScript 正则表达式与 exec 函数一起使用,并希望获得一个组的匹配项。我只是想不通为什么我没有得到匹配。
这是我的代码:
var elementClass="validate[required]"
var myRegexp = /validate\\[(*)\\]/g;
var match = myRegexp.exec(elementClass);
匹配每次都是空的。我不知道为什么。它应该是“必需的”。
谢谢您的帮助!
我正在尝试将 JavaScript 正则表达式与 exec 函数一起使用,并希望获得一个组的匹配项。我只是想不通为什么我没有得到匹配。
这是我的代码:
var elementClass="validate[required]"
var myRegexp = /validate\\[(*)\\]/g;
var match = myRegexp.exec(elementClass);
匹配每次都是空的。我不知道为什么。它应该是“必需的”。
谢谢您的帮助!
改用这个:
var myRegexp = /validate\[(.*)\]/;
首先,您只需要一个反斜杠即可转义 - 否则您正在搜索文字反斜杠,然后是您试图转义的特殊含义。
其次,*
仅表示“最后一件事的零个或多个”,在这种情况下没有任何意义,因为那里什么都没有。.
意思是“任何东西”(嗯,几乎)所以.*
意思是“任意数量的任何东西”。
最后,g
这里不需要该标志,尤其是当您试图捕获结果的一部分时。
1)你有很多斜线
var myRegexp = /validate\[(.*?)\]/g;
2)如果你只想匹配方括号中的部分,你应该使用组
var result = match[1];