Именованная обратная ссылка: \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