正则表达式中无效的标识符转义

当 Unicode 感知正则表达式模式包含 Unicode 感知 的正则表达式模式包含一个 转义序列,该序列不代表已识别的转义序列时,就会发生 JavaScript 异常“正则表达式中无效的标识转义”。

消息

SyntaxError: Invalid regular expression: /\q/u: Invalid escape (V8-based)
SyntaxError: invalid identity escape in regular expression (Firefox)
SyntaxError: Invalid regular expression: invalid escaped character for Unicode pattern (Safari)

错误类型

哪里出错了?

在非 Unicode 感知模式下,\ 可用于转义任何字符,包括那些没有定义含义的字符。在这些情况下,转义字符代表其自身。例如,\q 将匹配字符 q。这严重限制了将来添加新转义序列的能力,因此在 Unicode 感知模式下,仅允许已识别的转义序列。不要冗余地添加 \

\x 字符转义 后面没有跟着两个十六进制数字时,也会抛出此错误。

有关可用转义序列的完整列表,请参阅 正则表达式参考。有关在每种上下文中哪些字符可以按字面转义或非转义显示的表格,请参阅 字面字符

示例

无效情况

js
/[\f\v\n\t\ ]/u;

有效情况

js
// There's no need to escape the space
/[\f\v\n\t ]/u;

另请参阅