RegExp.$1, …, RegExp.$9
Veraltet: Diese Funktion wird nicht mehr empfohlen. Obwohl einige Browser sie möglicherweise noch unterstützen, könnte sie bereits aus den relevanten Webstandards entfernt worden sein, in Kürze entfernt werden oder nur noch aus Kompatibilitätsgründen bestehen. Vermeiden Sie die Verwendung und aktualisieren Sie vorhandenen Code, falls möglich; siehe die Kompatibilitätstabelle am Ende dieser Seite, um Ihre Entscheidung zu unterstützen. Beachten Sie, dass diese Funktion jederzeit aufhören könnte zu funktionieren.
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.
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