SyntaxError: ungültiges Zeichen in einer Klasse in regulärem Ausdruck
Die JavaScript-Ausnahme "ungültiges Zeichen in einer Klasse in regulärem Ausdruck" tritt auf, wenn ein Zeichen in einer v
-Modus-Zeichenklasse erscheint, das nicht wörtlich auftreten darf.
Meldung
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)
Fehlertyp
Was ist schief gelaufen?
Normalerweise können Zeichenklassen fast alle Zeichen wörtlich enthalten. Der v
-Modus hat jedoch die Syntax der Zeichenklassen erweitert, und um Platz für zukünftige Syntaxerweiterungen zu lassen, ist es verboten, bestimmte Syntaxzeichen wörtlich in einer Zeichenklasse erscheinen zu lassen. Dazu gehören: (
, )
, [
, ]
, {
, }
, /
, -
, |
. Wenn Sie diese Zeichen wörtlich abgleichen möchten, müssen Sie sie escapen; zum Beispiel: /[\|]/v
.
Beispiele
Ungültige Fälle
js
/[(){}]/v;
Gültige Fälle
js
/[\(\)\{\}]/v;