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;