【问题标题】:Javascript RegExp object adding charactersJavascript RegExp对象添加字符
【发布时间】:2015-06-16 01:20:01
【问题描述】:

我有一个正则表达式字符串被传递到我的代码中,当我尝试将它注入 RegExp 对象构造函数时,RegExp 对象似乎正在添加字符。

原始字符串正则表达式:

    /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/

调用 new RegExp(mystring); 后结果如下:

正则表达式:

    /\/^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$\//

我无法在我的 js 文件中对字符串进行硬编码,所以我需要一种方法来完成这项工作。

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    您不需要添加正则表达式分隔符。而且您必须再次转义反斜杠,因为双引号内的单个反斜杠将被视为转义序列。

    var re = "^\\(?([0-9]{3})\\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$";
    var reg = RegExp(re);
    

    【讨论】:

    • 谢谢,我没有使用双引号,但分隔符起到了作用!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 2020-01-13
    相关资源
    最近更新 更多