【问题标题】:Strange behavior of javascript RegExp: same regular expressions produce different result [duplicate]javascript RegExp的奇怪行为:相同的正则表达式产生不同的结果[重复]
【发布时间】:2012-09-04 06:01:50
【问题描述】:

可能重复:
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/

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    当您将其用作文字字符串时,您必须将每个 \ 转义为 \\

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

    【讨论】:

    • 谢谢!糟糕的javascript,它应该为此抛出一些错误。 :(
    猜你喜欢
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    • 2020-04-17
    • 2022-06-10
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多