Säännöllisen lausekkeen merkkijono JavaScriptissä
Säännölliset lausekkeet voidaan esittää merkkijonoina. Tämä on kätevää silloin, kun sinun täytyy tehdä muuttujien lisäyksiä säännöllisiin lausekkeisiin tai muodostaa niitä dynaamisesti.
Katsotaanpa esimerkkiä. Oletetaan, että meillä on seuraava merkkijono:
let str = 'img.png';
Oletetaan, että tähän merkkijonoon sovellamme seuraavaa säännöllistä lauseketta:
let reg = /\.(png|jpg)$/;
let res = str.match(reg);
Kirjoitetaan tämä säännöllinen lauseke
muodossa merkkijono. Tämä tehdään käyttämällä
erityistä objektia RegExp:
let reg = new RegExp('\.(png|jpg)$');
let res = str.match(reg);
Siirretään nyt osa säännöllisestä lausekkeesta muuttujaan ja lisätään se käyttämällä ketjuttamista:
let pat = 'png|jpg';
let reg = new RegExp('\.(' + pat + ')$');
let res = str.match(reg);
Ja nyt lisätään muuttuja mallimerkkien avulla:
let pat = 'png|jpg';
let reg = new RegExp(`\.(${pat})$`);
let res = str.match(reg);
Ja nyt muodostetaan osa säännöllisestä lausekkeesta taulukosta:
let exts = ['png', 'jpg'];
let pat = exts.join('|');
let reg = new RegExp(`\.(${pat})$`);
let res = str.match(reg);
Käytännön tehtävät
Siirrä verkkotunnusvyöhykkeiden nimet erilliseen muuttujaan:
let reg = /^[a-z]+\.(ru|by|ua)$/;
let res = reg.test(str);
Muokkaa edellistä tehtävää ottaen huomioon sen, että verkkotunnusvyöhykkeet tallennetaan taulukkomuodossa:
let arr = ['ru', 'by', 'ua'];