Heim > Web-Frontend > js-Tutorial > Wie kann ich reguläre Ausdrücke mit Variablen in JavaScript dynamisch erstellen?

Wie kann ich reguläre Ausdrücke mit Variablen in JavaScript dynamisch erstellen?

DDD
Freigeben: 2024-11-09 16:27:02
Original
683 Leute haben es durchsucht

How Can I Dynamically Create Regular Expressions with Variables in JavaScript?

Dynamische reguläre Ausdrücke mit Variablen in JavaScript

Die regulären Ausdrücke von JavaScript bieten ein leistungsstarkes Werkzeug für den Mustervergleich und die Musterbearbeitung. Das Einfügen von Variablen in diese Muster kann jedoch eine Herausforderung sein.

Bedenken Sie den folgenden Codeausschnitt:

function(input) {
    var testVar = input;
    string = ...
    string.replace(/ReGeX + testVar + ReGeX/, "replacement")
}
Nach dem Login kopieren

Dieser Code versucht, alle Vorkommen eines bestimmten Musters in einer Zeichenfolge durch ein bereitgestelltes zu ersetzen Ersatzsaite. Dies schlägt jedoch fehl, da Sie eine Variable nicht direkt innerhalb eines regulären Ausdrucks verketten können.

Lösung: Verwendung von Vorlagenzeichenfolgen

In ES6-JavaScript können Sie Vorlagenzeichenfolgen verwenden um dynamisch einen regulären Ausdruck mit einer Variablen zu erstellen. So würden Sie es machen:

const regex = new RegExp(`ReGeX${testVar}ReGeX`);
...
string.replace(regex, "replacement");
Nach dem Login kopieren

In diesem Beispiel akzeptiert der RegExp-Konstruktor eine Vorlagenzeichenfolge als erstes Argument. Die Vorlagenzeichenfolge enthält das ursprüngliche reguläre Ausdrucksmuster mit der interpolierten Variablen testVar. Die Backticks (``) weisen auf eine Vorlagenzeichenfolge hin.

ES6 vs. Pre-ES6

Vor ES6 mussten Sie eine ausführlichere Methode verwenden, um dasselbe zu erreichen Ergebnis:

var regex = new RegExp("ReGeX" + testVar + "ReGeX");
...
string.replace(regex, "replacement");
Nach dem Login kopieren

Die ältere Syntax funktioniert immer noch, aber die Template-String-Methode wird wegen ihrer Einfachheit und bevorzugt Lesbarkeit.

Achtung: Variablen maskieren

Es ist wichtig zu beachten, dass Sie maskieren sollten, wenn die Variable, die Sie einfügen, potenziell schädlichen Inhalt hat (z. B. Benutzereingaben). es, um Injektionsattacken vorzubeugen. Zum Escapen können die Funktionen escape() oder encodeURIComponent() verwendet werden.

Das obige ist der detaillierte Inhalt vonWie kann ich reguläre Ausdrücke mit Variablen in JavaScript dynamisch erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage