Streng med regulært uttrykk i JavaScript

Regulære uttrykk kan representeres som strenger. Dette er praktisk i tilfeller der du trenger å sette inn variabler i regulære uttrykk, eller danne dem dynamisk.

La oss se på et eksempel. Anta at vi har følgende streng:

javascriptlet str = 'img.png';

Anta at vi bruker følgende regulære uttrykk på denne strengen:

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

La oss omskrive dette regulære uttrykket som en streng. Dette gjøres ved hjelp av det spesielle objektet RegExp:

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

La oss nå flytte en del av det regulære uttrykket til en variabel og sette den inn ved hjelp av konkatenering:

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

Og nå setter vi inn variabelen ved hjelp av malstrenger:

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

Og la oss danne en del av det regulære uttrykket fra en array:

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

Praktiske oppgaver

Задание 1

Flytt domenesonenavnene til en egen variabel:

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

Modifiser den forrige oppgaven med tanke på at domenesonene lagres i form av en array:

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