Стринг са регуларним изразом у 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);
Практични задаци
Извуците називе доменских зона у посебну варијаблу:
javascriptlet reg = /^[a-z]+\.(ru|by|ua)$/;
let res = reg.test(str);
Модификујте претходни задатак узимајући у обзир то да се доменске зоне чувају у виду низа:
javascriptlet arr = ['ru', 'by', 'ua'];