The JavaScript exception "invalid class set operation in regular expression" occurs when a double punctuator sequence appears in a v-mode character class but it is not recognized by the syntax.
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)
SyntaxErrorThere are three possible ways this could happen:
&& or --, but the syntax is wrong. Each of these operators must join two characters or character sets.[\w&&[A-z]--_] is invalid because it uses && and -- on the same level. You need to use nested character classes to disambiguate, such as [\w&&[[A-z]--_]]. Note that the union operation uses an operator that has no text; for example, [AB&&C] is invalid because A and B are implicitly joined by the union operator. You need to use [A[B&&C]] instead.&& or --. These sequences are reserved for future syntax extensions. They include: &&, !!, ##, $$, %%, **, ++, ,,, .., ::, ;;, <<, ==, >>, ??, @@, ^^, ``, ~~. However, these sequences don't make much sense anyway, and can either be replaced with a single character or cause two adjacent ranges to be merged.