RegExp.$1, …, RegExp.$9

Veraltet: Diese Funktion wird nicht mehr empfohlen. Obwohl einige Browser sie möglicherweise noch unterstützen, kann sie bereits aus den relevanten Webstandards entfernt worden sein, befindet sich im Prozess der Entfernung oder wird nur aus Kompatibilitätsgründen beibehalten. Vermeiden Sie die Verwendung und aktualisieren Sie gegebenenfalls bestehenden Code; siehe die Kompatibilitätstabelle am Ende dieser Seite, um Ihre Entscheidung zu treffen. Beachten Sie, dass diese Funktion jederzeit nicht mehr funktionieren kann.

Hinweis: Alle statischen Eigenschaften von RegExp, die den letzten Match-Zustand global offenlegen, sind veraltet. Weitere Informationen finden Sie unter veraltete RegExp-Funktionen.

Die statischen Accessor-Eigenschaften RegExp.$1, …, RegExp.$9 geben erfasste Teilzeichenfolgen zurück.

Beschreibung

Da $1$9 statische Eigenschaften von RegExp sind, verwenden Sie sie immer als RegExp.$1, RegExp.$2 etc., anstatt als Eigenschaften eines von Ihnen erstellten RegExp-Objekts.

Die Werte von $1, …, $9 werden jedes Mal aktualisiert, wenn eine Instanz von RegExp (aber nicht von einer RegExp-Unterklasse) einen erfolgreichen Treffer erzielt. Wenn keine Treffer erzielt wurden oder wenn der letzte Treffer die entsprechende Erfassungsgruppe nicht enthält, ist die jeweilige Eigenschaft eine leere Zeichenfolge. Der Set-Accessor jeder Eigenschaft ist undefined, sodass Sie die Eigenschaften nicht direkt ändern können.

Die Anzahl möglicher erfasster Teilzeichenfolgen ist unbegrenzt, aber das RegExp-Objekt kann nur die ersten neun halten. Sie können auf alle erfassten Teilzeichenfolgen über die Indizes des zurückgegebenen Arrays zugreifen.

$1, …, $9 können auch im Ersetzungsstring von String.prototype.replace() verwendet werden, aber das steht in keinem Zusammenhang mit den RegExp.$n-Veralteten-Eigenschaften.

Beispiele

Verwendung von $n mit RegExp.prototype.test()

Das folgende Skript verwendet die Methode RegExp.prototype.test(), um eine Zahl in einem generischen String zu erfassen.

js
const str = "Test 24";
const number = /(\d+)/.test(str) ? RegExp.$1 : "0";
number; // "24"

Bitte beachten Sie, dass jede Operation, die die Verwendung anderer regulärer Ausdrücke zwischen einem re.test(str)-Aufruf und der RegExp.$n-Eigenschaft umfasst, Nebeneffekte haben kann, sodass der Zugriff auf diese speziellen Eigenschaften sofort erfolgen sollte, andernfalls könnte das Ergebnis unerwartet sein.

Spezifikationen

Specification
Legacy RegExp features
# additional-properties-of-the-regexp-constructor

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch