javascript RegExp的奇怪行为:相同的正则表达式会产生不同的结果

Strange behavior of javascript RegExp: same regular expressions produce different result

本文关键字:正则表达式 结果 RegExp javascript      更新时间:2023-09-26

可能重复:
为什么在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/

当您将其用作文字字符串时,必须使用'':转义每个'

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