【问题标题】:regex returning un expected value [duplicate]正则表达式返回未预期的值[重复]
【发布时间】:2017-09-12 01:04:08
【问题描述】:

我希望 new RegExp('\b\w{1,7}\b', "i").test('bc4rg6') 返回 true,因为我想测试字符串“bc4rg6”是字母数字并且有 1 到 7 个字符。但是浏览器给出的是假的。如何修复它以便我可以测试所述条件?谢谢

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    您需要对字符串中的反斜杠进行转义,因为\b 是一个转义序列,会变成退格字符。

    console.log(new RegExp('\\b\\w{1,7}\\b', "i").test('bc4rg6'));

    但如果正则表达式是常量,则不需要使用new RegExp,只需使用正则表达式字面量即可。

    console.log(/\b\w{1,7}\b/i.test('bc4rg6'))

    【讨论】:

      【解决方案2】:

      RegExp 函数不接受字符串作为参数。

      改为传递带有转义斜杠的Regular Expression 模式来指示模式的开始和结束。

      new RegExp(/\b\w{1,7}\b/, "i").test('bc4rg6');
      

      您可以在 Mozilla 阅读有关 RegExp 功能的更多信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-18
        • 2018-03-29
        • 1970-01-01
        • 1970-01-01
        • 2015-12-06
        • 1970-01-01
        相关资源
        最近更新 更多