在 JavaScript 中使用正则表达式文字时,它是/
- 分隔的,例如/^[a-z]$/
.
当在该正则表达式中包含斜线时,即/^[a-z/]$/
,一切似乎都工作正常 - 我的 IDE 的语法荧光笔和 Firefox 和 Chrome 的 JS 解析器都接受它。
/
它是不需要在字符类中转义的标准化行为,还是只是对开发人员友好的实现,因此不适用于所有浏览器?
在 JavaScript 中使用正则表达式文字时,它是/
- 分隔的,例如/^[a-z]$/
.
当在该正则表达式中包含斜线时,即/^[a-z/]$/
,一切似乎都工作正常 - 我的 IDE 的语法荧光笔和 Firefox 和 Chrome 的 JS 解析器都接受它。
/
它是不需要在字符类中转义的标准化行为,还是只是对开发人员友好的实现,因此不适用于所有浏览器?
是的,这是由规范定义的(第 25 页):
正则表达式类正则表达式类 字符
::
[
]
RegularExpressionClassChars [空] RegularExpressionClassChars RegularExpressionClassChar
::
RegularExpressionClassChar RegularExpressionNonTerminator但不是其中之一或RegularExpressionBackslashSequence
::
]
\
RegularExpressionNonTerminator SourceCharacter但不是LineTerminator
::
相反,普通的RegularExpressionChar定义为:
RegularExpressionChar RegularExpressionNonTerminator但不是或或RegularExpressionBackslashSequence RegularExpressionClass之一
::
\
/
[
因此,在字符类中,您可以/
自由使用而无需转义。