SyntaxError: invalid identity escape in regular expression

支援 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)

錯誤型別

SyntaxError

哪裡出錯了?

在不支援 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;

另見