SyntaxError: ungültiger benannter Rückverweis in regulärem Ausdruck
Der JavaScript-Ausnahmefehler "ungültiger benannter Rückverweis in regulärem Ausdruck" tritt auf, wenn ein regulärer Ausdruck ein benannter Rückverweis enthält, der sich nicht auf eine zuvor definierte benannte Gruppe bezieht. Eine ähnliche Fehlermeldung "ungültiger benannter Verweis in regulärem Ausdruck" wird angezeigt, wenn die Sequenz \k
erkannt wird, aber nicht von <
gefolgt wird.
Meldung
SyntaxError: Invalid regular expression: /\k<x>/u: Invalid named capture referenced (V8-based) SyntaxError: invalid named capture reference in regular expression (Firefox) SyntaxError: Invalid regular expression: invalid \k<> named backreference (Safari) SyntaxError: Invalid regular expression: /\k/u: Invalid named reference (V8-based) SyntaxError: invalid named reference in regular expression (Firefox) SyntaxError: Invalid regular expression: invalid escaped character for Unicode pattern (Safari)
Fehlertyp
Was ist schiefgelaufen?
Sie verwenden die Escape-Sequenz \k
, die als benannter Rückverweis interpretiert wird, aber das \k
ist entweder syntaktisch ungültig oder bezieht sich nicht auf eine benannte Gruppe im Muster.
\k
beginnt nur dann einen benannten Rückverweis, wenn das Muster eine benannte Gruppe enthält oder wenn das Muster Unicode-bewusst ist; andernfalls ist es ein Identitäts-Escape für das Zeichen k
.
Beispiele
Ungültige Fälle
/\k<x>/u; // Does not refer to a named capture group
/(?<x>.+)\k<y>/u; // Does not refer to an existing named capture group
/(?<x>.+)\k{x}/u; // Invalid syntax
Gültige Fälle
/(?<x>.+)\k<x>/u; // Refers to an existing named capture group