SyntaxError: invalid decimal escape in regular expression

当在Unicode感知正则表达式模式中使用旧版八进制转义序列时,会出现JavaScript异常“正则表达式中的无效十进制转义”。

消息

SyntaxError: Invalid regular expression: /\00/u: Invalid decimal escape (V8-based)
SyntaxError: invalid decimal escape in regular expression (Firefox)
SyntaxError: Invalid regular expression: invalid octal escape for Unicode pattern (Safari)

错误类型

出了什么问题?

在正则表达式中,后跟另一个数字的\0旧版八进制转义序列。相同的语法在模板字符串和严格模式字符串字面量中被禁止。在正则表达式中,此功能被Unicode感知模式(uv)禁用。\0后跟另一个数字是一个有效的转义序列,表示空字符(U+0000)。

后跟非零数字的\反向引用,如果它不引用捕获组,则在Unicode感知模式下无效;有关更多信息,请参阅无效标识转义

示例

无效情况

js
/\00/u;
/\01/u;

有效情况

js
// If you want to match NULL followed by a digit, use a character class
/[\0]0/u;
// If you want to match a character by its character value, use \x
/\x01/u;

另请参阅