名前付き後方参照: \k<name>
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
名前付き後方参照は、以前の[名前付きキャプチャグループ]の一致部分を参照し、そのグループと同じテキストに一致します。名前なしキャプチャグループの場合は、通常の後方参照構文を使用する必要があります。
構文
\k<name>
引数
解説
名前付き後方参照は、通常の後方参照とよく似ています。キャプチャグループによって照合されたテキストを参照し、同じテキストに一致します。異なる点は、キャプチャグループを番号ではなく名前で参照することです。これにより、正規表現がより読み取りやすくなり、 リファクタリングや保守が簡単になります。
Unicode 非対応モードでは、正規表現が少なくとも 1 つの名前付きキャプチャグループを格納している場合にのみ、シーケンス \k
は名前付き後方参照を開始します。それ以外の場合、これは ID エスケープであり、リテラル文字 `k`` と同じです。これはウェブの互換性のための非推奨構文としてのみ認められており、頼ってはいけません。
/\k/.test("k"); // true
例
引用符のペアリング
以下の関数は、文字列中の title='xxx'
と title="xxx"
のパターンと一致します。 引用符が確実に一致するように、後方参照を使用して最初の引用符を参照します。 2 つ目のキャプチャグループ ([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"
仕様書
Specification |
---|
ECMAScript Language Specification # prod-AtomEscape |
ブラウザーの互換性
BCD tables only load in the browser