SyntaxError: ungültiges Zeichen in Klasse in regulärem Ausdruck
Die JavaScript-Ausnahme "ungültiges Zeichen in Klasse in regulärem Ausdruck" tritt auf, wenn ein Zeichen in einer v
-Modus-Zeichenklasse erscheint, das nicht wörtlich auftreten darf.
Nachricht
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)
Fehlerart
Was ist schiefgelaufen?
Normalerweise können Zeichenklassen fast alle Zeichen wörtlich enthalten. Der v
-Modus hat jedoch die Syntax der Zeichenklasse verfeinert, und um Raum für zukünftige Syntaxerweiterungen zu lassen, sind einige Syntaxzeichen verboten, wörtlich in einer Zeichenklasse aufzutreten. 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;