Стринг со регуларен израз во JavaScript

Регуларните изрази можат да се претстават во вид на стрингови. Ова е погодно во случај кога ви е потребно да правите вметнувања на променливи во регуларните изрази, или да ги формирате нив динамички.

Да погледнеме на пример. Нека имаме следниот стринг:

javascriptlet str = 'img.png';

Нека на овој стринг го применуваме следниов регуларен израз:

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

Ајде да го преработиме овој регуларен израз во вид на стринг. Ова се прави со помош на специјален објект RegExp:

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

Сега ајде да го извадиме делот од регуларниот израз во променлива и да го вметнеме со помош на конкатенација:

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

А сега да ја вметнеме променливата со помош на шаблонски стрингови:

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

А сега да формираме дел од регуларниот израз од низа:

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

Практични задачи

Задание 1

Извадете ги имињата на доменските зони во посебна променлива:

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

Модифицирајте ја претходната задача земајќи го предвид тоа што доменските зони се чуваат во вид на низа:

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