创建空白正则表达式会在Chrome中添加随机非捕获组

时间:2013-05-17 01:25:07

标签: javascript regex google-chrome

我意识到我无法使用/(regex here)/语法匹配空正则表达式,因为//是注释。

'this is a test'.match(//)
> SyntaxError: Unexpected token }

所以,我尝试new RegExp('')并且它有效:

'this is a test'.match(new RegExp(''))
> [""]

但是当我检查new RegExp('')的输出时,就是这样:

new RegExp('')
> /(?:)/

这是为什么? (我使用的是Chrome版26.0.1410.64 (Official Build 193017) m,这是在JavaScript控制台中)

1 个答案:

答案 0 :(得分:3)

这在ECMA标准的7.8.5部分中指定:

  

正则表达式文字可能不为空;而不是代表   一个空的正则表达式文字,字符//开始一个   单行评论。要指定空的正则表达式,请使用:   /(?:)/.

此外,在15.10.4.1规范中声明:

  

如果P是空字符串,则可以通过让S满足此规范   是“(?:)”。