SyntaxError: ungültige benannte Referenz in regulärem Ausdruck
Die JavaScript-Ausnahme "ungültige benannte Referenz in regulärem Ausdruck" tritt auf, wenn ein reguläres Ausdrucksmuster eine benannte Rückreferenz enthält, die sich nicht auf eine benannte Erfassungsgruppe davor bezieht. Die ähnliche Fehlermeldung "ungültige benannte Referenz in regulärem Ausdruck" wird ausgegeben, wenn die Sequenz \k
erkannt wird, jedoch 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 benannte Rückreferenz interpretiert wird. Die \k
ist jedoch entweder syntaktisch ungültig oder bezieht sich nicht auf eine benannte Erfassungsgruppe im Muster.
\k
startet nur eine benannte Rückreferenz, wenn das Muster eine benannte Erfassungsgruppe enthält oder wenn das Muster Unicode-bewusst ist; andernfalls ist es eine 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