このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

SyntaxError: invalid class set operation in regular expression

JavaScript の例外 "invalid class set operation in regular expression" は、v モードの文字クラス内に二重区切り文字のシーケンスが現れているにもかかわらず、構文として認識されない場合に発生します。

エラーメッセージ

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

エラー型

SyntaxError

エラーの原因

これが発生するのは、以下の 3 つの可能性があります。

  • && または -- を使用しようとしていますが、構文が間違っています。それぞれの演算子は、いずれも 2 つの文字または文字セットを結合しなければなりません。
  • 同じレベルで演算子を混在させています。例えば、[\w&&[A-z]--_] は、同じレベルで &&-- を使用しているため不正です。曖昧さを解消するには、[\w&&[[A-z]--_]] のように、ネストした文字クラスを使用する必要があります。なお、和集合演算ではテキストを持たない演算子が使用されます。例えば、[AB&&C] は、AB が和集合演算子によって暗黙的に結合されるため、不正です。代わりに [A[B&&C]] を使用する必要があります。
  • &&-- 以外の二重記号の連続を使用しています。これらの連続記号は、将来の構文拡張のために予約されています。これには、&&!!##$$%%**++,,..::;;<<==>>??@@^^``~~ があります。ただし、これらのシーケンスはそもそもあまり意味をなさないものであり、単一の文字に置き換えることが可能で、隣接する 2 つの範囲が結合されることになります。

関連情報