SyntaxError: Ungültige Klassenmengenoperation im regulären Ausdruck
Die JavaScript-Ausnahme „ungültige Klassenmengenoperation im regulären Ausdruck“ tritt auf, wenn eine doppelte Interpunktionssequenz in einer v
-Modus-Zeichenklasse erscheint, die von der Syntax nicht erkannt wird.
Nachricht
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)
Fehlertyp
Was ist schiefgelaufen?
Es gibt drei mögliche Arten, wie dies passieren kann:
- Sie versuchen,
&&
oder--
zu verwenden, aber die Syntax ist falsch. Jeder dieser Operatoren muss zwei Zeichen oder Zeichensätze verbinden. - Sie vermischen Operatoren auf derselben Ebene. Zum Beispiel ist
[\w&&[A-z]--_]
ungültig, weil es&&
und--
auf derselben Ebene verwendet. Sie müssen geschachtelte Zeichenklassen verwenden, um Klarheit zu schaffen, wie zum Beispiel[\w&&[[A-z]--_]]
. Beachten Sie, dass die Vereinigungsoperation einen Operator verwendet, der keinen Text hat; zum Beispiel ist[AB&&C]
ungültig, weilA
undB
implizit durch den Vereinigungsoperator verbunden sind. Sie müssen stattdessen[A[B&&C]]
verwenden. - Sie verwenden eine doppelte Interpunktionssequenz, die nicht
&&
oder--
ist. Diese Sequenzen sind für zukünftige Syntaxerweiterungen reserviert. Dazu gehören:&&
,!!
,##
,$$
,%%
,**
,++
,,,
,..
,::
,;;
,<<
,==
,>>
,??
,@@
,^^
,``
,~~
. Diese Sequenzen sind jedoch ohnehin meist unsinnig und können entweder durch ein einzelnes Zeichen ersetzt werden oder dazu führen, dass zwei angrenzende Bereiche zusammengeführt werden.