SyntaxError: invalid range in character class

Der JavaScript-Ausnahmefehler "invalid range in character class" tritt auf, wenn eine Zeichenklasse in einem regulären Ausdruck einen Bereich verwendet, bei dem der Beginn des Bereichs größer ist als das Ende.

Nachricht

SyntaxError: Invalid regular expression: /[2-1]/: Range out of order in character class (V8-based)
SyntaxError: invalid range in character class (Firefox)
SyntaxError: Invalid regular expression: range out of order in character class (Safari)

Fehlertyp

Was ist schiefgelaufen?

In Zeichenklassen können zwei Zeichen mit einem Bindestrich - verbunden werden, um ein inklusive Intervall von Zeichen basierend auf ihren Unicode-Codepunkten darzustellen. Zum Beispiel entspricht [a-z] jedem Kleinbuchstaben. Wenn jedoch das Ende des Bereichs kleiner als der Beginn ist, kann der Bereich nichts matchen und ist höchstwahrscheinlich ein Fehler.

Beispiele

Ungültige Fälle

js
/[2-1]/; // The range is out of order
/[_-=]/; // _ has value 95, = has value 61

Gültige Fälle

js
/[1-2]/; // Swap the range
/[_\-=]/; // Escape the hyphen so it matches the literal character

Siehe auch