Javascript regexp不起作用

时间:2014-01-20 07:51:14

标签: javascript regex

测试字符串是“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);

3 个答案:

答案 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;