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, weilAundBimplizit 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.