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.
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> |