Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

RegExp.$1, …, RegExp.$9

Deprecated

Avoid using this feature in new projects. The RegExp static properties may have unintended side effects. This feature may be a candidate for removal from web standards or browsers.

Hinweis: Alle statischen RegExp-Eigenschaften, die den letzten Übereinstimmungszustand global verfügbar machen, sind veraltet. Weitere Informationen finden Sie unter veraltete RegExp-Funktionen.

Die statischen Zugriffsattribute RegExp.$1, …, RegExp.$9 geben geklammerte Teilstring-Übereinstimmungen zurück.

Beschreibung

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

Die Werte von $1, …, $9 werden aktualisiert, wann immer eine Instanz von RegExp (aber nicht von einer RegExp-Unterklasse) eine erfolgreiche Übereinstimmung erzielt. Wenn keine Übereinstimmungen erzielt wurden oder die letzte Übereinstimmung die entsprechende Erfassungsgruppe nicht enthält, ist die jeweilige Eigenschaft ein leerer String. Der Set-Zugriff von jeder Eigenschaft ist undefined, sodass Sie die Eigenschaften nicht direkt ändern können.

Die Anzahl der möglichen geklammerten Teilstrings ist unbegrenzt, aber das RegExp-Objekt kann nur die ersten neun speichern. Sie können auf alle geklammerten Teilstrings über die Indizes des zurückgegebenen Arrays zugreifen.

$1, …, $9 können auch im Ersetzungsstring von String.prototype.replace() verwendet werden, aber das ist nicht mit den RegExp.$n-Legacy-Eigenschaften verbunden.

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 beinhaltet, Nebeneffekte haben kann, daher sollte der Zugriff auf diese speziellen Eigenschaften unverzüglich erfolgen, ansonsten könnte das Ergebnis unerwartet sein.

Spezifikationen

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

Browser-Kompatibilität

Siehe auch