Sträng med reguljärt uttryck i JavaScript
Reguljära uttryck kan representeras som strängar. Detta är praktiskt i det fall att du behöver göra insättningar av variabler i reguljära uttryck, eller bilda dem dynamiskt.
Låt oss titta på ett exempel. Låt oss säga att vi har följande sträng:
let str = 'img.png';
Låt oss säga att vi applicerar följande reguljära uttryck till denna sträng:
let reg = /\.(png|jpg)$/;
let res = str.match(reg);
Låt oss skriva om detta reguljära uttryck
som en sträng. Detta görs med hjälp av
ett speciellt objekt RegExp:
let reg = new RegExp('\\.(png|jpg)$');
let res = str.match(reg);
Låt oss nu flytta ut en del av det reguljära uttrycket till en variabel och infoga den med hjälp av konkatenering:
let pat = 'png|jpg';
let reg = new RegExp('\\.(' + pat + ')$');
let res = str.match(reg);
Och nu infogar vi variabeln med hjälp av mallsträngar:
let pat = 'png|jpg';
let reg = new RegExp(`\\.(${pat})$`);
let res = str.match(reg);
Och nu bildar vi en del av det reguljära uttrycket från en array:
let exts = ['png', 'jpg'];
let pat = exts.join('|');
let reg = new RegExp(`\\.(${pat})$`);
let res = str.match(reg);
Praktiska uppgifter
Flytta ut namnen på domänzoner till en separat variabel:
let reg = /^[a-z]+\.(ru|by|ua)$/;
let res = reg.test(str);
Modifiera den föregående uppgiften med hänsyn till att domänzoner lagras i form av en array:
let arr = ['ru', 'by', 'ua'];