2

可能重复:
为什么在 Javascript 中带有全局标志的 RegExp 会给出错误的结果?

var reg1 = new RegExp('^http:\/\/abc\.com\/\d+$');
var reg2 = /^http:\/\/abc\.com\/\d+$/;

var url = 'http://abc.com/1657706754';

// expected: true, actual: false
document.write(reg1.test(url));
document.write('<br/>');
// expected: true, actual: true
document.write(reg2.test(url));

​见上面的代码示例。reg1reg2是相同的正则表达式,但为什么test结果不同?我在 Chrome 中测试它。这是在线演示:http: //jsfiddle.net/DzfWC/

4

1 回答 1

4

当您将其用作文字字符串时,您必须\ 使用以下命令进行转义\\

var reg1 = new RegExp('^http:\\/\\/abc\\.com\\/\\d+$');
于 2012-09-11T10:17:25.943 回答