Низ с регулярен израз в JavaScript
Регулярните изрази могат да бъдат представени под формата на низове. Това е удобно в случаите, когато е необходимо да правите вмъквания на променливи в регулярните изрази, или да ги формирате динамично.
Нека разгледаме пример. Да предположим, че имаме следния низ:
let str = 'img.png';
Да предположим, че към този низ прилагаме следния регулярен израз:
let reg = /\.(png|jpg)$/;
let res = str.match(reg);
Нека пренапишем този регулярен израз
под формата на низ. Това става с помощта
на специален обект RegExp:
let reg = new RegExp('\.(png|jpg)$');
let res = str.match(reg);
Сега нека изнесем част от регулярния израз в променлива и да я вмъкнем чрез конкатенация:
let pat = 'png|jpg';
let reg = new RegExp('\.(' + pat + ')$');
let res = str.match(reg);
А сега нека вмъкнем променливата с помощта на шаблонни низове:
let pat = 'png|jpg';
let reg = new RegExp(`\.(${pat})$`);
let res = str.match(reg);
А сега нека формираме част от регулярния израз от масив:
let exts = ['png', 'jpg'];
let pat = exts.join('|');
let reg = new RegExp(`\.(${pat})$`);
let res = str.match(reg);
Практически задачи
Изнесете имената на домейните зони в отделна променлива:
let reg = /^[a-z]+\.(ru|by|ua)$/;
let res = reg.test(str);
Модифицирайте предходната задача, като вземете предвид, че домейните зони се съхраняват под формата на масив:
let arr = ['ru', 'by', 'ua'];