7

在 JavaScript 中使用正则表达式文字时,它是/- 分隔的,例如/^[a-z]$/.

当在该正则表达式中包含斜线时,即/^[a-z/]$/,一切似乎都工作正常 - 我的 IDE 的语法荧光笔和 Firefox 和 Chrome 的 JS 解析器都接受它。

/它是不需要在字符类中转义的标准化行为,还是只是对开发人员友好的实现,因此不适用于所有浏览器?

4

1 回答 1

11

是的,这是由规范定义的(第 25 页):

正则表达式类正则表达式类 字符::
    [ ]

RegularExpressionClassChars     [空] RegularExpressionClassChars RegularExpressionClassChar::

    

RegularExpressionClassChar RegularExpressionNonTerminator但不是其中之一RegularExpressionBackslashSequence::
     ]\     

RegularExpressionNonTerminator SourceCharacter但不是LineTerminator::
    

相反,普通的RegularExpressionChar定义为:

RegularExpressionChar RegularExpressionNonTerminator但不是RegularExpressionBackslashSequence RegularExpressionClass之一::
     \/[
    
    

因此,在字符类中,您可以/自由使用而无需转义。

于 2013-07-02T08:48:33.737 回答