正则表达式在Firefox中不起作用

时间:2018-04-11 20:36:59

标签: javascript regex google-chrome firefox

在Chrome中正常运行的正则表达式失败,并在Firefox中出现此错误消息:

  

SyntaxError:无效的regexp组

正则表达式如下所示:/(?<=\{\{)[a-zA-Z0-9_]+(?=\}\})/g

我想在{{}}之间获取所有字符。

为什么这不适用于Firefox?

1 个答案:

答案 0 :(得分:2)

你的正则表达式(?<=\{\{)[a-zA-Z0-9_]+(?=\}\})在Firefox中不起作用的原因是由于使用了lookbehind (?<=\{\{)。目前,包含RegExp Lookbehind断言的ECMA TC39 proposal仅在一个主要浏览器(Chrome 62+)中实现。直到它在另一个主要的Web浏览器中实现,并不是所有主流浏览器都必须支持(根据我的理解,尽管我还没有找到这种行为的确切证据)。目前正处于第4阶段(探究阶段)。

解决这个问题?根据您的使用情况,您只需使用捕获组,如下所示:

{{(\w+)}}