测试字符串是“page-42440233_45778105” 模式“(page- \ d + _ \ d +)”
在线测试员(http://www.regexr.com/)成功找到了mathc,但在浏览器中,js结果为null。为什么呢?
var re = new RegExp("(page-\d+_\d+)", "gim");
var r_array = message.match(re);
console.log(r_array);
答案 0 :(得分:1)
我认为这将是一个更好的模式
var re = /^page-\d+_\d+$/i;
它还匹配字符串的开头(^
)和结尾($
)
message.match(re);
//=> ["page-42440233_45778105"]
答案 1 :(得分:0)
使用字符串文字时,必须转义\
:
var re = new RegExp("(page-\\d+_\\d+)", "gim");
这里更好的解决方案是使用正则表达式文字:
var re = /(page-\d+_\d+)/gim
如果正则表达式是常量,请不要使用RegExp构造函数,正则表达式文字更方便。
答案 2 :(得分:0)
如果您使用字符串文字,则需要转义\
:
var message = "page-42440233_45778105";
var re = new RegExp("(page-\\d+_\\d+)", "gim");
var r_array = message.match(re);
console.log(r_array);
// => ["page-42440233_45778105"]
更优选地,使用正则表达式文字:
var re = /(page-\d+_\d+)/gim;