2012-09-11 91 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,它應該拋出一些錯誤。 :( –

相關問題