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

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