【问题标题】:Regular expression breaking in browsers?浏览器中的正则表达式中断?
【发布时间】:2013-12-10 14:18:47
【问题描述】:

这个正则表达式似乎在 Chrome、Firefox 和 IE11 中中断...

'abc(def'.match('\((\w*)')

这有什么问题吗?有没有更好的方法来逃避 ( 字符?

如果我这样做,他们会很高兴:

/\((\w*)/.exec('abc(def')

【问题讨论】:

  • 一些在线测试工具接受这一点,但当然,他们可能会以正则表达式格式执行它,或者转义 \ 字符。

标签: javascript regex google-chrome firefox internet-explorer-11


【解决方案1】:

如果您从字符串文字构造正则表达式,则需要转义 \ 字符:

'abc(def'.match('\\((\\w*)')

或者简单地使用正则表达式文字:

'abc(def'.match(/\((\w*)/)

【讨论】:

    【解决方案2】:

    这是因为您的正则表达式必须包含在 / 而不是 ' 之间:

    'abc(def'.match(/\((\w*)/)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      • 1970-01-01
      • 2010-09-21
      • 2011-11-29
      • 1970-01-01
      相关资源
      最近更新 更多