Regex-Variable in JavaScript

Sahil Bhosale 20 Juni 2023
Regex-Variable in JavaScript

Ein regulärer Ausdruck, auch Regex genannt, ist eine Folge von Zeichen, die ein Textmuster definiert, das abgeglichen werden soll. Ein regulärer Ausdruck ist ein Objekt, das nur mit Zeichenfolgen verwendet wird.

Um mehr über die regulären Ausdrücke und die verschiedenen verfügbaren Zeichenklassen und Flags zu erfahren, können Sie die offizielle Dokumentation einsehen. Dieser Artikel behandelt kurz den regulären Ausdruck in JavaScript.

Verwenden Sie eine Variable in einem regulären Ausdruck mithilfe von Vorlagenliteralen in JavaScript

Es gibt zwei Möglichkeiten, einen regulären Ausdruck in JavaScript zu definieren, zum einen durch Verwenden des regulären Ausdrucksliterals, bei dem Muster in Schrägstriche / eingeschlossen sind, und zum anderen durch Aufrufen der Konstruktorfunktion des RegExp-Objekts. Diese Konstruktorfunktion benötigt zwei Parameter, der erste ist das Muster und der zweite das flag.

Für dieses Tutorial verwenden wir die Konstruktorfunktion des Objekts RegExp und sehen, wie man eine Variable innerhalb eines regulären Ausdrucks in JavaScript verwendet. Im folgenden Beispiel haben wir einen inputString genommen, der verschiedene Zeichen und Zahlen kontaktiert.

Unser Ziel hier ist es, ein Muster zu erstellen, es an die Konstruktorfunktion RegExp zu übergeben und alle Ziffern innerhalb des Strings durch ein Wort zu ersetzen.

let inputString = "I work at 1. Android is developed by 2.";

Da die Konstruktorfunktion RegExp das Muster als ersten Parameter verwendet, erstellen wir eine neue Variable namens Muster. Wir übergeben das \\d, das nach den Ziffern innerhalb der Zeichenfolge innerhalb dieser Variablen sucht.

Wir schließen die Variable Muster mit dem Zeichen \\b ein und übergeben sie als erstes Argument an die Konstruktorfunktion RegExp. Aber nur die Variable Muster als \\bMuster\\b zu übergeben, wird nicht funktionieren und einen ungültige Escape-Sequenz-Fehler auslösen.

Wir müssen die Template-Literale oder Template-Strings verwenden, damit dies funktioniert. Wir werden die gesamte Zeichenfolge in die Backticks-Zeichen einschließen, und dann, wo immer wir die Variable Muster hinzufügen möchten, verwenden wir das ${} und übergeben die Variable Muster innerhalb der geschweiften Klammern, wie im folgenden Code gezeigt Ausschnitt.

Codeausschnitt - JavaScript:

let pattern = "\\d";
let re = new RegExp(`\\b${pattern}\\b`, 'gi');
console.log(inputString.replace(re, "Google"));

Und dann übergeben wir gi als zweites Argument an die Konstruktorfunktion RegExp. Das g führt eine globale Suche nach der gesamten Eingabezeichenfolge durch, und i ersetzt alle Instanzen eines bestimmten Worts, das in der Funktion replace angegeben ist.

Dann speichern wir das Ergebnis der Konstruktorfunktion RegExp in der Variablen re (regulärer Ausdruck). Schließlich verwenden wir die String-Funktion replace() auf dem inputString und übergeben die Regex als ersten Parameter und das neue Wort wird durch das passende ersetzt.

Ausgang:

I work at Google. Android is developed by Google.

In diesem Fall wollen wir die Zahlen 1 und 2 durch das Wort Google ersetzen. Der in der Variable re gespeicherte reguläre Ausdruck findet also diese beiden Ziffern im inputString und ersetzt diese Zahlen dann mit Hilfe der Funktion replace() durch das Wort Google.

Sahil Bhosale avatar Sahil Bhosale avatar

Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.

LinkedIn

Verwandter Artikel - JavaScript Regex