Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Seit May 2025 funktioniert diese Funktion auf aktuellen Geräten und in aktuellen Browserversionen. Auf älteren Geräten oder in älteren Browsern funktioniert sie möglicherweise nicht.
Die statische Methode RegExp.escape() escaped alle potenziellen Regex-Syntaxzeichen in einem String und gibt einen neuen String zurück, der sicher als Literal-Muster für den RegExp() Konstruktor verwendet werden kann.
Wenn Sie dynamisch ein RegExp mit benutzerdefiniertem Inhalt erstellen, sollten Sie diese Funktion verwenden, um die Eingabe zu bereinigen (es sei denn, die Eingabe soll tatsächlich Regex-Syntax enthalten). Außerdem sollten Sie nicht versuchen, deren Funktionalität selbst zu implementieren, indem Sie beispielsweise String.prototype.replaceAll() verwenden, um ein \ vor allen Syntaxzeichen einzufügen. RegExp.escape() ist dafür ausgelegt, Escape-Sequenzen zu verwenden, die in vielen mehr Randfällen/Kontexten funktionieren, als handgefertigter Code wahrscheinlich erreichen würde.
Der zu escapenende String.
Ein neuer String, der sicher als Literal-Muster für den RegExp() Konstruktor verwendet werden kann. Dabei werden folgende Dinge im Eingabestring ersetzt:
Wird ausgelöst, wenn string kein String ist.
Die folgenden Beispiele zeigen verschiedene Eingaben und Ausgaben für die RegExp.escape() Methode.
Der Hauptverwendungszweck von RegExp.escape() ist, wenn Sie einen String in ein größeres Regex-Muster einbetten möchten und sicherstellen wollen, dass der String als Literalmuster behandelt wird, nicht als Regex-Syntax. Betrachten Sie das folgende naive Beispiel, das URLs ersetzt:
Das Einfügen der domain oben ergibt das reguläre Ausdrucksliteral https?://developer.mozilla.org(?=/), wobei das "."-Zeichen ein Regex Wildcard-Zeichen ist. Das bedeutet, dass der String mit jedem Zeichen anstelle des "." übereinstimmen würde, wie developer-mozilla-org. Daher würde es fälschlicherweise auch den folgenden Text ändern:
Um dies zu beheben, können wir RegExp.escape() verwenden, um sicherzustellen, dass jede Benutzereingabe als Literalmuster behandelt wird:
Jetzt wird diese Funktion genau das tun, was wir beabsichtigen, und wird keine developer-mozilla.org-URLs verändern.
| ECMAScript® 2027 Language Specification # sec-regexp.escape |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
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.