জাভাস্ক্রিপ্টে রেগুলার এক্সপ্রেশন সহ স্ট্রিং

রেগুলার এক্সপ্রেশনগুলিকে স্ট্রিং আকারে উপস্থাপন করা যেতে পারে। এটি সুবিধাজনক সেই ক্ষেত্রে, যখন আপনার রেগুলার এক্সপ্রেশনে ভেরিয়েবল সন্নিবেশ করা প্রয়োজন, অথবা সেগুলি গতিশীলভাবে গঠন করা প্রয়োজন।

আসুন একটি উদাহরণ দেখি। ধরুন আমাদের নিম্নলিখিত স্ট্রিংটি আছে:

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