SyntaxError: ungültiger Dezimal-Escape in regulärem Ausdruck
Die JavaScript-Ausnahme "ungültiger Dezimal-Escape in regulärem Ausdruck" tritt auf, wenn eine veraltete oktale Escape-Sequenz in einem Unicode-bewussten regulären Ausdrucksmuster verwendet wird.
Nachricht
SyntaxError: Invalid regular expression: /\00/u: Invalid decimal escape (V8-based) SyntaxError: invalid decimal escape in regular expression (Firefox) SyntaxError: Invalid regular expression: invalid octal escape for Unicode pattern (Safari)
Fehlertyp
Was ist schiefgelaufen?
In einem regulären Ausdruck ist \0
, gefolgt von einer weiteren Ziffer, eine veraltete oktale Escape-Sequenz. Die gleiche Syntax ist in Template-Strings und strikten Modus-String-Literalen verboten. In Regexen wird diese Funktion in den Unicode-bewussten Modi (u
und v
) deaktiviert. \0
, das nicht von einer weiteren Ziffer gefolgt wird, ist eine gültige Escape-Sequenz, die das NULL-Zeichen (U+0000) darstellt.
\
gefolgt von einer nicht-null Ziffer ist ein Rückverweis und ist im Unicode-bewussten Modus ungültig, wenn er sich nicht auf eine erfassende Gruppe bezieht; siehe ungültige Identitäts-Escape für weitere Informationen.
Beispiele
Ungültige Fälle
/\00/u;
/\01/u;
Gültige Fälle
// If you want to match NULL followed by a digit, use a character class
/[\0]0/u;
// If you want to match a character by its character value, use \x
/\x01/u;