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:
javascriptlet str = 'img.png';
Oletetaan, että tähän merkkijonoon sovellamme seuraavaa säännöllistä lauseketta:
javascriptlet 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:
javascriptlet 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:
javascriptlet pat = 'png|jpg';
let reg = new RegExp('\.(' + pat + ')$');
let res = str.match(reg);
Ja nyt lisätään muuttuja mallimerkkien avulla:
javascriptlet pat = 'png|jpg';
let reg = new RegExp(`\.(${pat})$`);
let res = str.match(reg);
Ja nyt muodostetaan osa säännöllisestä lausekkeesta taulukosta:
javascriptlet 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:
javascriptlet reg = /^[a-z]+\.(ru|by|ua)$/;
let res = reg.test(str);
Muokkaa edellistä tehtävää ottaen huomioon sen, että verkkotunnusvyöhykkeet tallennetaan taulukkomuodossa:
javascriptlet arr = ['ru', 'by', 'ua'];