Regex-Zeichenkette in JavaScript

Reguläre Ausdrücke können als Zeichenketten dargestellt werden. Dies ist nützlich, wenn Sie Variablen in Regex einfügen oder diese dynamisch bilden müssen.

Schauen wir uns ein Beispiel an. Nehmen wir an, wir haben die folgende Zeichenkette:

javascriptlet str = 'img.png';

Nehmen wir an, wir wenden den folgenden regulären Ausdruck auf diese Zeichenkette an:

javascriptlet reg = /\.(png|jpg)$/;
let res = str.match(reg);

Lassen Sie uns diesen regulären Ausdruck als Zeichenkette umschreiben. Dies geschieht mit Hilfe des speziellen Objekts RegExp:

javascriptlet reg = new RegExp('\.(png|jpg)$');
let res = str.match(reg);

Lassen Sie uns nun einen Teil des Regex in eine Variable auslagern und sie durch Verkettung einfügen:

javascriptlet pat = 'png|jpg';
let reg = new RegExp('\.(' + pat + ')$');
let res = str.match(reg);

Und nun fügen wir die Variable mit Template-Literals ein:

javascriptlet pat = 'png|jpg';
let reg = new RegExp(`\.(${pat})$`);
let res = str.match(reg);

Lassen Sie uns nun einen Teil des Regex aus einem Array bilden:

javascriptlet exts = ['png', 'jpg'];
let pat  = exts.join('|');
let reg  = new RegExp(`\.(${pat})$`);
let res  = str.match(reg);

Praktische Aufgaben

Задание 1

Lagern Sie die Namen der Top-Level-Domains in eine separate Variable aus:

javascriptlet reg = /^[a-z]+\.(ru|by|ua)$/;
let res = reg.test(str);
Задание 2

Modifizieren Sie die vorherige Aufgabe unter Berücksichtigung, dass die Top-Level-Domains in Form eines Arrays gespeichert sind:

javascriptlet arr = ['ru', 'by', 'ua'];