String sa regularnim izrazom u JavaScript-u
Regularni izrazi se mogu predstaviti u vidu stringova. Ovo je zgodno u slučaju, ako je potrebno praviti umetanja promenljivih u regularne izraze, ili ih formirati dinamički.
Pogledajmo na primeru. Neka imamo sledeći string:
let str = 'img.png';
Neka na ovaj string primenjujemo sledeći regularni izraz:
let reg = /\.(png|jpg)$/;
let res = str.match(reg);
Hajde da prepišemo ovaj regularni izraz
u vidu stringa. Ovo se radi pomoću
specijalnog objekta RegExp:
let reg = new RegExp('\\.(png|jpg)$');
let res = str.match(reg);
Hajde sada da izdvojimo deo regularnog izraza u promenljivu i umetnemo ga pomoću konkatenacije:
let pat = 'png|jpg';
let reg = new RegExp('\\.(' + pat + ')$');
let res = str.match(reg);
A sada da umetnemo promenljivu pomoću template stringova:
let pat = 'png|jpg';
let reg = new RegExp(`\\.(${pat})$`);
let res = str.match(reg);
A sada da formiramo deo regularnog izraza iz niza:
let exts = ['png', 'jpg'];
let pat = exts.join('|');
let reg = new RegExp(`\\.(${pat})$`);
let res = str.match(reg);
Praktični zadaci
Izdvojite nazive domen zona u posebnu promenljivu:
let reg = /^[a-z]+\.(ru|by|ua)$/;
let res = reg.test(str);
Modifikujte prethodni zadatak uzevši u obzir da su domen zone sačuvane u vidu niza:
let arr = ['ru', 'by', 'ua'];