Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.
Das RegExp-Objekt wird zum Abgleichen von Texten anhand eines Musters verwendet.
Für eine Einführung in reguläre Ausdrücke lesen Sie das Kapitel über reguläre Ausdrücke im JavaScript-Leitfaden. Für detaillierte Informationen zur Syntax regulärer Ausdrücke lesen Sie die Referenz zu regulären Ausdrücken.
Es gibt zwei Möglichkeiten, ein RegExp-Objekt zu erstellen: eine literale Notation und einen Konstruktor.
Die folgenden drei Ausdrücke erzeugen dasselbe reguläre Ausdrucksobjekt:
Bevor reguläre Ausdrücke verwendet werden können, müssen sie kompiliert werden. Dieser Prozess ermöglicht es ihnen, Übereinstimmungen effizienter zu finden. Mehr über den Prozess finden Sie in den dotnet-Dokumenten.
Die literale Notation führt zur Kompilierung des regulären Ausdrucks, wenn der Ausdruck ausgewertet wird. Andererseits führt der Konstruktor des RegExp-Objekts, new RegExp('ab+c'), zur Laufzeit zur Kompilierung des regulären Ausdrucks.
Verwenden Sie einen String als erstes Argument des RegExp() Konstruktors, wenn Sie den regulären Ausdruck aus dynamischen Eingaben erstellen wollen.
Der Ausdruck new RegExp(/ab+c/, flags) erstellt ein neues RegExp, indem die Quelle des ersten Parameters und die vom zweiten bereitgestellten Flags verwendet werden.
Beim Verwenden der Konstruktorfunktion sind die normalen String-Escape-Regeln erforderlich (besondere Zeichen müssen in einem String mit \ eingefügt werden).
Zum Beispiel sind die folgenden gleichwertig:
Hinweis: Ob etwas ein "Regex" ist, kann über Duck-Typing bestimmt werden. Es muss kein RegExp sein!
Einige eingebaute Methoden behandeln Regexe speziell. Sie bestimmen in mehreren Schritten, ob x ein Regex ist:
Beachten Sie, dass in den meisten Fällen die Symbol.match-Überprüfung durchgeführt wird, was bedeutet:
Diese Wahl wurde getroffen, weil [Symbol.match]() die am besten indizierende Eigenschaft ist, dass etwas zum Abgleichen verwendet werden soll. (exec könnte auch verwendet werden, aber da es keine Symbol-Eigenschaft ist, würde es zu viele Fehlalarme geben.) Zu den Stellen, die Regexe speziell behandeln, gehören:
Zum Beispiel würde String.prototype.endsWith() alle Eingaben in Strings umwandeln, aber es würde eine Ausnahme auslösen, wenn das Argument ein Regex ist, da es nur zum Abgleichen von Strings gedacht ist und die Verwendung eines Regex wahrscheinlich ein Entwicklerfehler ist.
Sie können die Prüfung umgehen, indem Sie [Symbol.match] auf einen falsy Wert setzen, der nicht undefined ist. Dies würde bedeuten, dass das Regex nicht für String.prototype.match() verwendet werden kann (da ohne [Symbol.match], match() ein neues RegExp-Objekt mit den zwei durch re.toString() hinzugefügten umschließenden Schrägstrichen konstruieren würde), aber es kann für praktisch alles andere verwendet werden.
Beachten Sie, dass mehrere der RegExp-Eigenschaften sowohl lange als auch kurze (Perl-ähnliche) Namen haben. Beide Namen beziehen sich immer auf denselben Wert. (Perl ist die Programmiersprache, nach der sich JavaScript bei der Modellierung seiner regulären Ausdrücke gerichtet hat.) Siehe auch veraltete RegExp-Eigenschaften.
Erstellt ein neues RegExp-Objekt.
Statische, schreibgeschützte Eigenschaften, die geklammerte Teilstring-Übereinstimmungen enthalten.
RegExp.input ($_)Eine statische Eigenschaft, die den letzten String enthält, gegen den ein regulärer Ausdruck erfolgreich abgeglichen wurde.
RegExp.lastMatch ($&)Eine statische, schreibgeschützte Eigenschaft, die den letzten übereinstimmenden Teilstring enthält.
RegExp.lastParen ($+)Eine statische, schreibgeschützte Eigenschaft, die die letzte geklammerte Teilstring-Übereinstimmung enthält.
RegExp.leftContext ($`)Eine statische, schreibgeschützte Eigenschaft, die den Teilstring vor der zuletzt gefundenen Übereinstimmung enthält.
RegExp.rightContext ($')Eine statische, schreibgeschützte Eigenschaft, die den Teilstring nach der zuletzt gefundenen Übereinstimmung enthält.
RegExp[Symbol.species]Die Konstruktorfunktion, die verwendet wird, um abgeleitete Objekte zu erstellen.
Entfernt alle potenziellen Regex-Syntaxzeichen aus einem String und gibt einen neuen String zurück, der sicher als literal Muster für den RegExp() Konstruktor verwendet werden kann.
Diese Eigenschaften sind auf RegExp.prototype definiert und werden von allen RegExp-Instanzen geteilt.
RegExp.prototype.constructorDie Konstruktorfunktion, die das Instanz-Objekt erstellt hat. Für RegExp-Instanzen ist der Anfangswert der RegExp-Konstruktor.
RegExp.prototype.dotAllOb . Zeilenumbrüche abgleicht oder nicht.
RegExp.prototype.flagsEin String, der die Flags des RegExp-Objekts enthält.
RegExp.prototype.globalOb der reguläre Ausdruck gegen alle möglichen Übereinstimmungen in einem String getestet werden soll oder nur gegen die erste.
RegExp.prototype.hasIndicesOb das Ergebnis des regulären Ausdrucks die Anfangs- und Endindices der erfassten Teilstrings freilegt.
RegExp.prototype.ignoreCaseOb die Groß-/Kleinschreibung beim Versuch eines Abgleichs in einem String ignoriert werden soll.
RegExp.prototype.multilineOb in Strings über mehrere Zeilen hinweg gesucht werden soll oder nicht.
RegExp.prototype.sourceDer Text des Musters.
RegExp.prototype.stickyOb die Suche "sticky" ist oder nicht.
RegExp.prototype.unicodeOb Unicode-Funktionen aktiviert sind oder nicht.
RegExp.prototype.unicodeSetsOb das v-Flag, ein Upgrade des u-Modus, aktiviert ist oder nicht.
Diese Eigenschaften sind eigene Eigenschaften jeder RegExp-Instanz.
lastIndexDer Index, an dem die nächste Übereinstimmung starten soll.
Kompiliert den regulären Ausdruck während der Ausführung eines Skripts neu.
RegExp.prototype.exec()Führt eine Suche nach einer Übereinstimmung in seinem Zeichenkettenparameter aus.
RegExp.prototype.test()Testet eine Übereinstimmung in seinem Zeichenkettenparameter.
RegExp.prototype.toString()Gibt einen String zurück, der das angegebene Objekt darstellt. Überschreibt die Object.prototype.toString() Methode.
RegExp.prototype[Symbol.match]()Führt den Abgleich mit der angegebenen Zeichenfolge durch und gibt das Übereinstimmungsergebnis zurück.
RegExp.prototype[Symbol.matchAll]()Gibt alle Übereinstimmungen des regulären Ausdrucks gegen eine Zeichenfolge zurück.
RegExp.prototype[Symbol.replace]()Ersetzt Übereinstimmungen in der angegebenen Zeichenfolge durch einen neuen Teilstring.
RegExp.prototype[Symbol.search]()Sucht die Übereinstimmung in der angegebenen Zeichenfolge und gibt den Index zurück, an dem das Muster in der Zeichenfolge gefunden wurde.
RegExp.prototype[Symbol.split]()Teilt die angegebene Zeichenfolge in ein Array, indem die Zeichenfolge in Teilstrings getrennt wird.
Das folgende Skript verwendet die String.prototype.replace() Methode, um einen Namen im Format Vorname Nachname abzugleichen und in das Format Nachname, Vorname auszugeben.
Im Ersetzungstext verwendet das Skript $1 und $2, um die Ergebnisse der entsprechenden Klammerausdrücke im regulären Ausdrucksmuster anzugeben.
Dies zeigt "Cruz, Maria" an.
Das Standard-Zeilenende variiert je nach Plattform (Unix, Windows, etc.). Die Zeilenaufteilung, die in diesem Beispiel bereitgestellt wird, funktioniert auf allen Plattformen.
Beachten Sie, dass die Reihenfolge der Muster im regulären Ausdruck von Bedeutung ist.
Standardmäßig stimmt das Zeichen . nicht mit Zeilenumbrüchen überein. Um es mit Zeilenumbrüchen übereinstimmen zu lassen, verwenden Sie das s-Flag (dotAll-Modus).
Das sticky-Flag zeigt an, dass der reguläre Ausdruck eine Sticky-Übereinstimmung in der Zielzeichenfolge durchführt, indem versucht wird, abzuklären ab RegExp.prototype.lastIndex zu beginnen.
Mit dem Sticky-Flag y muss das nächste Match an der lastIndex-Position stattfinden, während mit dem globalen Flag g das Match an der lastIndex-Position oder später stattfinden kann:
Mit dem globalen Flag g würden alle 6 Ziffern abgeglichen, nicht nur 3.
\w und \W stimmen nur mit Zeichen auf ASCII-Basis überein, zum Beispiel von a bis z, A bis Z, 0 bis 9 und _.
Um Zeichen aus anderen Sprachen wie Kyrillisch oder Hebräisch abzugleichen, verwenden Sie \uHHHH, wobei HHHH der Unicode-Wert des Zeichens in Hexadezimaldarstellung ist.
Dieses Beispiel zeigt, wie man Unicode-Zeichen aus einem Wort heraustrennen kann.
Die Unicode-Eigenschafts-Eskapaden Funktion bietet eine einfachere Möglichkeit, bestimmte Unicode-Bereiche zu anvisieren, indem Erklärungen wie \p{scx=Cyrl} (um einen beliebigen kyrillischen Buchstaben abzugleichen) oder \p{L}/u (um einen Buchstaben aus jeder Sprache abzugleichen) erlaubt werden.
Hinweis: Anstatt reguläre Ausdrücke zu verwenden, um URLs zu parsen, ist es normalerweise besser, den eingebauten URL-Parser des Browsers mit der Verwendung der URL API zu verwenden.
| ECMAScript® 2027 Language Specification # sec-regexp-regular-expression-objects |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Beginnend mit Firefox 34 ist im Fall einer Fanggruppe mit Quantoren, die deren Ausführung verhindern, der abgeglichene Text für eine Fanggruppe jetzt undefined anstelle eines leeren Strings:
Beachten Sie, dass aufgrund der Webkompatibilität RegExp.$N weiterhin einen leeren String anstelle von undefined zurückgeben wird (Bug 1053944).
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.