Niz z regularnim izrazom v JavaScript

Regularne izraze lahko predstavimo v obliki nizov. To je priročno v primeru, če morate vstaviti spremenljivke v regularne izraze ali jih oblikovati dinamično.

Poglejmo si primer. Recimo, da imamo naslednji niz:

javascriptlet str = 'img.png';

Recimo, da za ta niz uporabimo naslednji regularni izraz:

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

Prepišimo ta regularni izraz v obliki niza. To naredimo s pomočjo posebnega objekta RegExp:

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

Izločimo zdaj del regularnega izraza v spremenljivko in ga vstavimo s pomočjo konkatenacije:

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

In zdaj vstavimo spremenljivko s pomočjo predloskovnih nizov:

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

In zdaj oblikujmo del regularnega izraza iz tabele:

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

Praktične naloge

Задание 1

Izločite imena domenskh con v posebno spremenljivko:

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

Spremenite prejšnjo nalogo glede na to, da so domenske cone shranjene v obliki tabele:

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