Benannte Rückreferenz: \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.

Eine benannte Rückreferenz bezieht sich auf die Teilübereinstimmung einer vorherigen benannten Erfassungsgruppe und stimmt mit demselben Text wie diese Gruppe überein. Bei unbenannten Erfassungsgruppen müssen Sie die normale Rückreferenz Syntax verwenden.

Syntax

regex
\k<name>

Parameter

name

Der Name der Gruppe. Muss ein gültiger Bezeichner sein und sich auf eine existierende benannte Erfassungsgruppe beziehen.

Beschreibung

Benannte Rückreferenzen sind der normalen Rückreferenz sehr ähnlich: Sie bezieht sich auf den Text, der von einer Erfassungsgruppe erfasst wurde, und stimmt mit demselben Text überein. Der Unterschied besteht darin, dass Sie sich auf die Erfassungsgruppe nach ihrem Namen statt nach ihrer Nummer beziehen. Dies macht den regulären Ausdruck lesbarer und einfacher zu überarbeiten und zu pflegen.

Im Unicode-unbewussten Modus startet die Sequenz \k nur dann eine benannte Rückreferenz, wenn der RegEx mindestens eine benannte Erfassungsgruppe enthält. Andernfalls ist es ein Identity Escape und entspricht dem literalen Zeichen k. Dies ist eine veraltete Syntax für Web-Kompatibilität und sollte nicht verwendet werden.

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

Beispiele

Paarweise Anführungszeichen

Die folgende Funktion sucht nach den Mustern title='xxx' und title="xxx" in einem String. Um sicherzustellen, dass die Anführungszeichen übereinstimmen, verwenden wir eine Rückreferenz, um auf das erste Anführungszeichen zu verweisen. Der Zugriff auf die zweite Erfassungsgruppe ([2]) gibt den String zwischen den passenden Anführungszeichen zurück:

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"

Spezifikationen

Specification
ECMAScript® 2025 Language Specification
# prod-AtomEscape

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
Named backreference: \k<name>

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch