SyntaxError: ungültiger Dezimal-Entweih in regulärem Ausdruck
Die JavaScript-Ausnahme „ungültiger Dezimal-Entweih in regulärem Ausdruck“ tritt auf, wenn eine veraltete oktale Entweihsequenz 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 Entweihsequenz. Die gleiche Syntax ist in Template-Strings und strikten Modus-String-Literalen verboten. In regulären Ausdrücken wird dieses Feature durch den Unicode-bewussten Modus (u
und v
) deaktiviert. \0
, das nicht von einer weiteren Ziffer gefolgt wird, ist eine gültige Entweihsequenz, die das Nullzeichen (U+0000) darstellt.
\
gefolgt von einer von Null verschiedenen Ziffer ist ein Backreference und ist im Unicode-bewussten Modus ungültig, wenn es sich nicht auf eine erfassende Gruppe bezieht; siehe ungültiger Identitätsentweih 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;