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 に答える