Радок з рэгуляркай у JavaScript
Рэгулярныя выразы можна прадстаўляць у выглядзе радкоў. Гэта зручна ў тым выпадку, калі вам неабходна рабіць устаўкі зменных у рэгуляркі, альбо фармаваць іх дынамічна.
Давайце паглядзім на прыкладзе. Хай у нас ёсць наступны радок:
let str = 'img.png';
Хай да гэтага радка мы ўжываем наступны рэгулярны выраз:
let reg = /\.(png|jpg)$/;
let res = str.match(reg);
Давайце перапішам гэты рэгулярны выраз
у выглядзе радка. Гэта робіцца з дапамогай
спецыяльнага аб'екта RegExp:
let reg = new RegExp('\.(png|jpg)$');
let res = str.match(reg);
Давайце цяпер вынясем частку рэгуляркі у зменную і ўставім яе з дапамогай канкатэнацыі:
let pat = 'png|jpg';
let reg = new RegExp('\.(' + pat + ')$');
let res = str.match(reg);
А цяпер уставім зменную з дапамогай шаблонных радкоў:
let pat = 'png|jpg';
let reg = new RegExp(`\.(${pat})$`);
let res = str.match(reg);
А цяпер сфармуем частку рэгуляркі з масіва:
let exts = ['png', 'jpg'];
let pat = exts.join('|')
let reg = new RegExp(`\.(${pat})$`);
let res = str.match(reg);
Практычныя задачы
Вынясіце назвы даменных зон у асобную зменную:
let reg = /^[a-z]+\.(ru|by|ua)$/;
let res = reg.test(str);
Мадыфікуйце папярэднюю задачу з улікам таго, што даменныя зоны захоўваюцца ў выглядзе масіва:
let arr = ['ru', 'by', 'ua'];