JavaScriptтеги RegExp объекти менен саптуу
Кадимки туюнтмаларды сап түрүндө көрсөтсө болот. Бул ыңгайлуу, эгер сизге өзгөрмөлөрдү кадимки туюнтмаларга киргизиш керек болсо, же аларды динамикалык түзүш керек болсо.
Мисалды карап көрөлү. Төмөндөгүдөй сап бар деп коёлу:
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'];