Регулярӣ ибораҳо бо сатр дар 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'];