⊗jsSpREStri 134 of 294 menu

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'];
uzbydetrhu