SyntaxError: invalid character in class in regular expression

當字元出現在v 模式字元類中但又不允許以字面量形式出現時,就會發生 JavaScript 異常“正則表示式中的字元類中包含無效字元”。

訊息

SyntaxError: Invalid regular expression: /[|]/v: Invalid character in character class (V8-based)
SyntaxError: invalid character in class in regular expression (Firefox)
SyntaxError: Invalid regular expression: invalid class set character (Safari)

錯誤型別

SyntaxError

哪裡出錯了?

通常,字元類可以幾乎包含所有字元的字面量。然而,v 模式使字元類語法更加複雜,為了給未來的語法擴充套件留出空間,一些語法字元被禁止以字面量形式出現在字元類中。它們包括:()[]{}/-|。如果你想匹配這些字面量字元,請對其進行轉義;例如:/[\|]/v

示例

無效案例

js
/[(){}]/v;

有效情況

js
/[\(\)\{\}]/v;

另見