String met reguliere expressie in JavaScript
Reguliere expressies kunnen worden weergegeven als strings. Dit is handig in het geval dat je variabelen in reguliere expressies moet invoegen, of ze dynamisch moet vormen.
Laten we een voorbeeld bekijken. Stel we hebben de volgende string:
let str = 'img.png';
Stel dat we op deze string de volgende reguliere expressie toepassen:
let reg = /\.(png|jpg)$/;
let res = str.match(reg);
Laten we deze reguliere expressie herschrijven
als een string. Dit wordt gedaan met behulp van
het speciale object RegExp:
let reg = new RegExp('\.(png|jpg)$');
let res = str.match(reg);
Laten we nu een deel van de reguliere expressie in een variabele zetten en deze invoegen met behulp van concatenatie:
let pat = 'png|jpg';
let reg = new RegExp('\.(' + pat + ')$');
let res = str.match(reg);
En laten we nu de variabele invoegen met behulp van template strings:
let pat = 'png|jpg';
let reg = new RegExp(`\.(${pat})$`);
let res = str.match(reg);
En laten we nu een deel van de reguliere expressie vormen uit een array:
let exts = ['png', 'jpg'];
let pat = exts.join('|');
let reg = new RegExp(`\.(${pat})$`);
let res = str.match(reg);
Praktische opdrachten
Plaats de namen van de domeinzones in een aparte variabele:
let reg = /^[a-z]+\.(ru|by|ua)$/;
let res = reg.test(str);
Wijzig de vorige opdracht rekening houdend met het feit dat de domeinzones opgeslagen zijn in de vorm van een array:
let arr = ['ru', 'by', 'ua'];