命名反向引用:\k<name>
语法
正则表达式
\k<name>
参数
描述
命名反向引用与普通反向引用非常相似:它引用捕获组匹配的文本并匹配相同的文本。区别在于你通过名称而不是数字来引用捕获组。这使得正则表达式更具可读性,并且更易于重构和维护。
在非 Unicode 感知模式下,只有当正则表达式包含至少一个命名捕获组时,序列\k才会开始一个命名反向引用。否则,它是一个恒等转义,与字面字符k相同。这是用于 Web 兼容性的废弃语法,不应依赖它。
js
/\k/.test("k"); // true
示例
配对引号
以下函数匹配字符串中的 title='xxx' 和 title="xxx" 模式。为了确保引号匹配,我们使用反向引用来引用第一个引号。访问第二个捕获组 ([2]) 将返回匹配引号字符之间的字符串
js
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® 2026 语言规范 # prod-AtomEscape |
浏览器兼容性
加载中…