sizzle.js中的正则表达式如何工作?

时间:2016-02-07 20:47:45

标签: javascript regex sizzle

如果使用RegExp对象在JavaScript中创建的正则表达式中的转义字符需要再次转义,则sizzle.js中的以下代码如何工作 -

identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+"

如果\\\\\\\ = \\\\w = \w,那么当只使用一个反斜杠时,\0 = \0如何?

在Google控制台中运行时,identifier"(?:\\\\.|[\w-]|[^-\\xa0])+"

这是错误还是我不正确理解?如果这是正确的,这就是它的工作方式\0的目的是什么?

1 个答案:

答案 0 :(得分:1)

如果您的正则表达式需要包含反斜杠 - 例如,因为您需要\((与实际(匹配)或\w(匹配字母或数字或下划线) - 并且您正在从字符串文字创建正则表达式,然后您需要编写\\,在正则表达式中最终为\

但是在\0示例中,正则表达式需要包含反斜杠。它只需要包含字符U+0000(与自身匹配)。因此字符串文字只能包含\0,最终为字符U + 0000。