Տողը ռեգուլյար արտահայտությամբ JavaScript-ում

Ռեգուլյար արտահայտությունները կարող են ներկայացվել տողերի տեսքով։ Սա հարմար է այն դեպքում, երբ անհրաժեշտ է փոփոխականներ ներդնել ռեգուլյար արտահայտությունների մեջ կամ դրանք դինամիկ կերպով ձևավորել։

Դիտարկենք օրինակով։ Ենթադրենք ունենք հետևյալ տողը.

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