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:

javascriptlet str = 'img.png';

Låt oss säga att vi applicerar följande reguljära uttryck till denna sträng:

javascriptlet 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:

javascriptlet 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:

javascriptlet pat = 'png|jpg';
let reg = new RegExp('\\.(' + pat + ')$');
let res = str.match(reg);

Och nu infogar vi variabeln med hjälp av mallsträngar:

javascriptlet 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:

javascriptlet exts = ['png', 'jpg'];
let pat  = exts.join('|');
let reg  = new RegExp(`\\.(${pat})$`);
let res  = str.match(reg);

Praktiska uppgifter

Задание 1

Flytta ut namnen på domänzoner till en separat variabel:

javascriptlet reg = /^[a-z]+\.(ru|by|ua)$/;
let res = reg.test(str);
Задание 2

Modifiera den föregående uppgiften med hänsyn till att domänzoner lagras i form av en array:

javascriptlet arr = ['ru', 'by', 'ua'];