如果使用RegExp对象在JavaScript中创建的正则表达式中的转义字符需要再次转义,则sizzle.js中的以下代码如何工作 -
identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+"
如果\\\\\\\ = \
和\\\w = \w
,那么当只使用一个反斜杠时,\0 = \0
如何?
在Google控制台中运行时,identifier
为"(?:\\\\.|[\w-]|[^-\\xa0])+"
这是错误还是我不正确理解?如果这是正确的,这就是它的工作方式\0
的目的是什么?
答案 0 :(得分:1)
如果您的正则表达式需要包含反斜杠 - 例如,因为您需要\(
(与实际(
匹配)或\w
(匹配字母或数字或下划线) - 并且您正在从字符串文字创建正则表达式,然后您需要编写\\
,在正则表达式中最终为\
。
但是在\0
示例中,正则表达式不需要包含反斜杠。它只需要包含字符U+0000(与自身匹配)。因此字符串文字只能包含\0
,最终为字符U + 0000。