জাভাস্ক্রিপ্ট রেগুলার এক্সপ্রেশন (Regular Expressions) বিস্তারিত টিউটোরিয়াল
রেগুলার এক্সপ্রেশন (RegExp বা Regex) হলো একটি শক্তিশালী টুল যা দিয়ে আপনি টেক্সট বা স্ট্রিং এর মধ্যে প্যাটার্ন খুঁজে পেতে পারেন, ম্যাচ করতে পারেন, রিপ্লেস করতে পারেন এবং ভ্যালিডেশন করতে পারেন। জাভাস্ক্রিপ্টে রেগুলার এক্সপ্রেশন খুবই জনপ্রিয় এবং প্রায়শই ব্যবহার করা হয় ফর্ম ভ্যালিডেশন, সার্চিং, এবং স্ট্রিং প্রসেসিং এ।
রেগুলার এক্সপ্রেশন কী?
রেগুলার এক্সপ্রেশন হলো একটি প্যাটার্ন যা স্ট্রিং এর মধ্যে নির্দিষ্ট ধরনের ডাটা খুঁজে পেতে সাহায্য করে। এটি এমন একটি বিশেষ সিনট্যাক্স যা সাধারনত /…/ স্ল্যাশের মধ্যে লেখা হয়।
var pattern = /abc/;
var pattern2 = new RegExp(‘abc’);
সাধারণ মেথডসমূহ
| মেথড | বর্ণনা | উদাহরণ |
|---|---|---|
test() |
স্ট্রিং এ প্যাটার্ন আছে কিনা চেক করে (true/false) | /abc/.test(‘abcde’) → true |
exec() |
ম্যাচ পেলে ম্যাচের ডিটেইলস রিটার্ন করে | /abc/.exec(‘123abc456’) |
match() |
স্ট্রিং এ রেগুলার এক্সপ্রেশন ম্যাচ করলে সেই ম্যাচ রিটার্ন করে | ‘abc123’.match(/abc/) |
replace() |
ম্যাচ হওয়া অংশ রিপ্লেস করে | ‘abc123’.replace(/abc/, ‘xyz’) |
রেগুলার এক্সপ্রেশনের উদাহরণ ও ব্যাখ্যা
// একটি সাধারণ টেক্সটে “cat” আছে কিনা চেক করা
var pattern = /cat/;
console.log(pattern.test(‘The cat is black’)); // true
// কোন স্ট্রিং এ প্রথম “cat” এর অবস্থান বের করা
var result = pattern.exec(‘A cat and a catalog’);
console.log(result.index); // 2
console.log(result[0]); // “cat”// স্ট্রিং থেকে “cat” কে “dog” দিয়ে রিপ্লেস করা
var newStr = ‘I have a cat.’.replace(/cat/, ‘dog’);
console.log(newStr); // “I have a dog.”
// ‘hello123’ স্ট্রিং এ সংখ্যা আছে কিনা
var digitPattern = /\d+/;
console.log(digitPattern.test(‘hello123’)); // true
// প্রথম সংখ্যা খুঁজে বের করা
console.log(‘hello123 world456’.match(/\d+/)); // [“123”]
// সব সংখ্যাগুলো খুঁজে বের করতে গ্লোবাল ফ্ল্যাগ লাগবে
console.log(‘hello123 world456’.match(/\d+/g)); // [“123”, “456”]
</script>
রেগুলার এক্সপ্রেশনের বিশেষ ক্যারেক্টার
| সিম্বল | অর্থ | উদাহরণ |
|---|---|---|
| . | যেকোনো একক ক্যারেক্টার | /a.c/ – “abc”, “axc” |
| \d | ডিজিট (0-9) | /\d/ – “4” |
| \w | অক্ষর বা সংখ্যা | /\w/ – “a”, “3” |
| \s | স্পেস বা হোয়াইটস্পেস | /\s/ – ” “ |
| ^ | স্ট্রিং এর শুরু | /^abc/ |
| $ | স্ট্রিং এর শেষ | /xyz$/ |
| * | 0 বা তার বেশি পুনরাবৃত্তি | /ab*c/ |
| + | 1 বা তার বেশি পুনরাবৃত্তি | /ab+c/ |
| ? | 0 বা 1 বার | /ab?c/ |
ফ্ল্যাগ সমূহ (Flags)
রেগুলার এক্সপ্রেশন এর সাথে বিভিন্ন ফ্ল্যাগ ব্যবহার করা হয়, যেমন:
- g – গ্লোবাল সার্চ (সব ম্যাচ খোঁজে)
- i – ইনসেন্সিটিভ সার্চ (বড়-ছোট অক্ষর আলাদা করে না)
- m – মাল্টিলাইন সার্চ
// গ্লোবাল এবং ইনসেন্সিটিভ ফ্ল্যাগ সহ
var re = /cat/gi;
var str = “Cat cat cAt caT”;
var matches = str.match(re);
console.log(matches); // [“Cat”, “cat”, “cAt”, “caT”]
</script>
একটি সাধারণ ভ্যালিডেশন উদাহরণ
ইমেইল এড্রেস ভ্যালিডেশনের জন্য একটি সাধারণ রেগুলার এক্সপ্রেশন:
var emailPattern = /^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$/i;
console.log(emailPattern.test(‘example@test.com’)); // true
console.log(emailPattern.test(‘invalid-email’)); // false
</script>
উপসংহার
জাভাস্ক্রিপ্ট রেগুলার এক্সপ্রেশন হল একটি শক্তিশালী প্যাটার্ন ম্যাচিং টুল যা বিভিন্ন টেক্সট প্রসেসিং, ভ্যালিডেশন, সার্চ এবং রিপ্লেসমেন্টের কাজে ব্যবহৃত হয়। প্রথমে একটু কঠিন মনে হলেও প্র্যাকটিস করলে খুবই সহজ এবং কার্যকর।