SyntaxError: недопустимая именованная ссылка на захват в регулярном выражении
JavaScript-исключение "invalid named capture reference in regular expression" (недопустимая именованная ссылка на захват в регулярном выражении) возникает, когда шаблон регулярного выражения содержит именованную обратную ссылку, которая не ссылается на именованную группу захвата, находящуюся перед ней. Аналогичное сообщение об ошибке "invalid named reference in regular expression" (недопустимая именованная ссылка в регулярном выражении) выдается, когда встречается последовательность \k, за которой не следует <.
Сообщение
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)
Тип ошибки
Что пошло не так?
Вы используете escape-последовательность \k, которая интерпретируется как именованная обратная ссылка, но \k либо синтаксически неверна, либо не ссылается на именованную группу захвата в шаблоне.
\k начинает именованную обратную ссылку только тогда, когда шаблон содержит именованную группу захвата или когда шаблон учитывает Unicode; в противном случае это идентифицирующий escape-символ для символа k.
Примеры
Недопустимые случаи
/\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
Допустимые случаи
/(?<x>.+)\k<x>/u; // Refers to an existing named capture group
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Regex_invalid_named_capture_reference