Streng med regulært udtryk i JavaScript
Regulære udtryk kan repræsenteres som strenge. Dette er praktisk i det tilfælde, hvis du har brug for at indsætte variabler i regulære udtryk, eller danne dem dynamisk.
Lad os se på et eksempel. Lad os sige, at vi har følgende streng:
let str = 'img.png';
Lad os sige, at vi anvender følgende regulære udtryk til denne streng:
let reg = /\.(png|jpg)$/;
let res = str.match(reg);
Lad os omskrive dette regulære udtryk
som en streng. Dette gøres ved hjælp af
et specielt objekt RegExp:
let reg = new RegExp('\.(png|jpg)$');
let res = str.match(reg);
Lad os nu flytte en del af det regulære udtryk ud i en variabel og indsætte den ved hjælp af konkatenering:
let pat = 'png|jpg';
let reg = new RegExp('\.(' + pat + ')$');
let res = str.match(reg);
Og lad os nu indsætte variablen ved hjælp af skabelonstrenge:
let pat = 'png|jpg';
let reg = new RegExp(`\.(${pat})$`);
let res = str.match(reg);
Og lad os nu danne en del af det regulære udtryk fra et array:
let exts = ['png', 'jpg'];
let pat = exts.join('|');
let reg = new RegExp(`\.(${pat})$`);
let res = str.match(reg);
Praktiske opgaver
Flyt domænezonernes navne ud i en separat variabel:
let reg = /^[a-z]+\.(ru|by|ua)$/;
let res = reg.test(str);
Modificer den forrige opgave under hensyntagen til, at domænezoner gemmes som et array:
let arr = ['ru', 'by', 'ua'];