Reguliarios išraiškos eilutė JavaScript
Reguliariosios išraiškos gali būti pateikiamos eilučių pavidalu. Tai patogu tais atvejais, kai jums reikia daryti kintamųjų įterpimus į reguliarias išraiškas arba formuoti jas dinamiškai.
Pažiūrėkime pavyzdžiu. Tarkime, kad turime tokią eilutę:
let str = 'img.png';
Tarkime, kad šiai eilutei taikome šią reguliariąją išraišką:
let reg = /\.(png|jpg)$/;
let res = str.match(reg);
Perrašykime šią reguliariąją išraišką
eilutės pavidalu. Tai daroma naudojant
specialųjį objektą RegExp:
let reg = new RegExp('\\.(png|jpg)$');
let res = str.match(reg);
Dabar išskirkime dalį reguliariosios išraiškos į kintamąjį ir įterpkime ją naudodami konkatenaciją:
let pat = 'png|jpg';
let reg = new RegExp('\\.(' + pat + ')$');
let res = str.match(reg);
O dabar įterpkime kintamąjį naudodami šablonines eilutes:
let pat = 'png|jpg';
let reg = new RegExp(`\\.(${pat})$`);
let res = str.match(reg);
O dabar suformuokime dalį reguliariosios išraiškos iš masyvo:
let exts = ['png', 'jpg'];
let pat = exts.join('|');
let reg = new RegExp(`\\.(${pat})$`);
let res = str.match(reg);
Praktinės užduotys
Išskirkite domenų zonų pavadinimus į atskirą kintamąjį:
let reg = /^[a-z]+\.(ru|by|ua)$/;
let res = reg.test(str);
Modifikuokite ankstesnę užduotį atsižvelgdami į tai, kad domenų zonos saugomos masyvo pavidalu:
let arr = ['ru', 'by', 'ua'];