Spec-Zone.ru › JavaScript

Именованная обратная ссылка: \k<name>

Базовая поддержка Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

Именованная обратная ссылка относится к подсовпадению предыдущей именованной захватывающей группы и совпадает с тем же текстом, что и эта группа. Для неименованных захватывающих групп необходимо использовать обычный синтаксис обратной ссылки.

Синтаксис

\k<name>

Параметры

name
Имя группы. Должно быть допустимым идентификатором и ссылаться на существующую именованную захватывающую группу.

Описание

Именованные обратные ссылки очень похожи на обычные обратные ссылки: они ссылаются на текст, соответствующий захватывающей группе, и совпадают с тем же текстом. Отличие состоит в том, что вы ссылаетесь на захватывающую группу по имени, а не по номеру. Это делает регулярное выражение более читаемым и облегчает его рефакторинг и поддержку.

В режиме, не учитывающем Unicode, последовательность \k начинает именованную обратную ссылку только в том случае, если регулярное выражение содержит хотя бы одну именованную захватывающую группу. В противном случае это экранирование символа, и оно эквивалентно литеральному символу k. Это устаревший синтаксис для совместимости с веб-средой, и на него не следует полагаться.

/\k/.test("k"); // true

Примеры

Сопоставление кавычек

Следующая функция сопоставляет шаблоны title='xxx' и title="xxx" в строке. Чтобы убедиться, что кавычки совпадают, мы используем обратную ссылку для ссылки на первую кавычку. Доступ ко второй захватывающей группе ([2]) возвращает строку между совпадающими кавычками:

function parseTitle(metastring) {
  return metastring.match(/title=(?<quote>["'])(.*?)\k<quote>/)[2];
}

parseTitle('title="foo"'); // 'foo'
parseTitle("title='foo' lang='en'"); // 'foo'
parseTitle('title="Named capturing groups\' advantages"'); // "Named capturing groups' advantages"

Спецификации

Спецификация
Спецификация языка ECMAScript® 2027
# prod-AtomEscape

Совместимость с браузерами

Настольные компьютеры Мобильные устройства Сервер
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
named_backreference
64
79
78
51
11.1
64
79
47
11.3
9.0
64
11.3
1.0.0
1.0
10.0.0

См. также

  • Руководство по группам и обратным ссылкам
  • Регулярные выражения
  • Захватывающая группа: (...)
  • Именованная захватывающая группа: (?<name>...)
  • Обратная ссылка: \1, \2

© 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/Regular_expressions/Named_backreference

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API