我在 javascript 中的正则表达式遇到一些问题。 我有以下代码,我认为应该匹配,但事实并非如此。
var rgx = new RegExp("{\d+:(\d+)}");
if (rgx.test("{0:00000}") == true) {
alert("match");
}
else
{
alert("no match");
}
我不确定是否应该在这里使用 test() 。我真的很想在我的正则表达式中捕获该组,但 exec() 似乎给了我相同的结果。
那我做错了什么?
最佳答案
问题是您需要转义正则表达式中的\字符:
var rgx = new RegExp("{\\d+:(\\d+)}");
或者,您可以使用文字语法:
var rgx = /{\d+:(\d+)}/;
要捕获结果,您还应该使用 .match 函数,而不是 test 或 exec。如果不匹配则返回 null,如果匹配则返回一个至少包含一个元素的数组。
关于javascript - 无法匹配我的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13559912/