Varg me shprehje të rregullta në JavaScript

Shprehjet e rregullta mund të paraqiten në formën e vargjeve. Kjo është e përshtatshme në rastin kur ju duhet të bëni futje të ndryshoreve në shprehjet e rregullta, ose t'i formoni ato në mënyrë dinamike.

Le të shohim një shembull. Le të themi se kemi vargun e mëposhtëm:

javascriptlet str = 'img.png';

Le të themi se këtij vargu ne i aplikojmë shprehjen e rregullt të mëposhtme:

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

Le ta rishkruajmë këtë shprehje të rregullt në formën e një vargu. Kjo bëhet duke përdorur objektin e veçantë RegExp:

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

Tani le të nxjerrim një pjesë të shprehjes së rregullt në një ndryshore dhe ta fusim atë duke përdorur konkatenim:

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

Dhe tani le të fusim ndryshoren duke përdorur vargje shabllone:

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

Dhe tani le të formojmë një pjesë të shprehjes së rregullt nga një varg:

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

Detyra praktike

Задание 1

Nxirre emrat e zonave të domainit në një ndryshore të veçantë:

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

Modifikoni detyrën e mëparshme duke marrë parasysh që zonat e domainit ruhen në formën e një vargu:

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