SyntaxError: invalid character in class in regular expression
JavaScript の例外 "invalid character in class in regular expression" は、vモードの文字クラス内に文字が現れるにもかかわらず、その文字をリテラルとして記述することができることが許可されていない場合に発生します。
エラーメッセージ
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;