javascript - 无法匹配我的正则表达式

标签 javascript regex

我在 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/

相关文章:

javascript - 如何在访问网站时增加视频大小。 HTML java 脚本可能是 JQuery?视频动画

javascript - 限制 Javascript 文件仅在一页中使用(Ruby on Rails)

regex - 无法使用 sed/regex 删除字符串中的最后一个字符

javascript - 如何确定路径末尾是否包含格式?

javascript - 表中的 jQuery slideDown 和 SlideUp 看起来不正确

javascript - 如何使用 Nodejs 对远程 Mongodb 进行 CRUD 操作

python - 如何从字符串中提取所有类似数字的值?

javascript - 替换 HTML 字符串中的所有 <a> 标记

javascript - 如何使用 javascript/jquery 从 URL 中删除获取变量和文件名?

javascript - 打破 facebook 喜欢按钮文本行“一个喜欢。注册以查看您的 friend 喜欢什么