2012-09-11 64 views
2

可能重复:
Why RegExp with global flag in Javascript give wrong results?奇怪的行为:相同的正则表达式产生不同的结果

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

当你使用它作为一个字符串必须转义每\\\

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

谢谢!错误的JavaScript,它应该抛出一些错误。 :( –

相关问题