JavaScriptтеги RegExp объекти менен саптуу

Кадимки туюнтмаларды сап түрүндө көрсөтсө болот. Бул ыңгайлуу, эгер сизге өзгөрмөлөрдү кадимки туюнтмаларга киргизиш керек болсо, же аларды динамикалык түзүш керек болсо.

Мисалды карап көрөлү. Төмөндөгүдөй сап бар деп коёлу:

javascriptlet str = 'img.png';

Бул сапка төмөндөгүдөй кадимки туюнтманы колдонобуз деп коёлу:

javascriptlet reg = /\.(png|jpg)$/;
let res = str.match(reg);

Келгиле, бул кадимки туюнтманы сап түрүндө кайра жазалы. Бул RegExp деген атайын объект менен жасалат:

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

Келгиле, эми кадимки туюнтманын бир бөлүгүн өзгөрмөгө чыгарып, аны конкатенация менен киргизели:

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

Эми өзгөрмөнү шаблондуу саптар менен киргизели:

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

Эми кадимки туюнтманын бир бөлүгүн массивден түзөлү:

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

Практикалык тапшырмалар

Задание 1

Домен аймактарынын аттарын бөлүк өзгөрмөгө чыгарыңыз:

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

Домен аймактары массив түрүндө сакталгандыгына карабастан, мурунку тапшырманы өзгөртүңүз:

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