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

js
/\00/u;
/\01/u;

Gültige Fälle

js
// 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;

Siehe auch