Unicode এবং Unicode Property Escapes হল RegExp-এর অত্যন্ত গুরুত্বপূর্ণ বৈশিষ্ট্য যা বিশ্বের বিভিন্ন ভাষার অক্ষর, চিহ্ন এবং সিম্বল গুলি সঠিকভাবে মেলাতে সাহায্য করে। Unicode স্ট্যান্ডার্ডের মাধ্যমে প্রায় সব ভাষার অক্ষর এবং চিহ্নের জন্য একটি একক কোড পয়েন্ট নির্ধারণ করা হয়, যা গ্লোবালাইজড স্ট্রিং ম্যানিপুলেশনকে আরও সহজ এবং কার্যকরী করে তোলে।
Unicode কী?
Unicode একটি স্ট্যান্ডার্ড যা প্রায় সকল ভাষার অক্ষর, সিম্বল, পঙক্তি চিহ্ন, এবং অন্যান্য লিখনযোগ্য চরিত্রগুলির জন্য একটি একক কৌড পয়েন্ট নির্ধারণ করে। এটি আধুনিক সফটওয়্যার এবং ওয়েব অ্যাপ্লিকেশনগুলিতে সমস্ত ভাষার চরিত্রের সঠিক প্রদর্শন এবং প্রক্রিয়াকরণকে সহজ করে তোলে।
Unicode এর সুবিধা:
- গ্লোবাল সাপোর্ট: Unicode বিভিন্ন ভাষার অক্ষর সমর্থন করে, যেমন বাংলা, চাইনিজ, আরবি, ল্যাটিন, ইত্যাদি।
- স্ট্যান্ডার্ডাইজেশন: Unicode বিশ্বের বিভিন্ন ভাষার অক্ষরের জন্য একটি একক কোড পয়েন্ট প্রদান করে, যা ডেটা ট্রান্সফার ও ম্যানিপুলেশনকে সহজ করে তোলে।
- সাম্প্রতিক Unicode সংস্করণ: নতুন Unicode সংস্করণে নিয়মিত নতুন অক্ষর এবং চিহ্ন যোগ করা হয়।
Unicode Escape Sequence
RegExp-এ Unicode Escape Sequence ব্যবহার করে আপনি Unicode অক্ষর মেলাতে পারেন। এটি মূলত \u এর সাথে চারটি হেক্সাডেসিমাল ডিজিট ব্যবহার করা হয়।
সিনট্যাক্স:
\uXXXX
এখানে, XXXX হল সেই অক্ষরের Unicode কোড পয়েন্ট।
উদাহরণ:
let regex = /\u0041/;
let str = "A";
console.log(regex.test(str)); // true
এখানে, \u0041 Unicode Escape Sequence দ্বারা "A" অক্ষরটি ম্যাচ করা হচ্ছে, কারণ 0041 হল "A" অক্ষরের Unicode কোড পয়েন্ট।
Unicode Property Escapes
Unicode Property Escapes RegExp-এর একটি নতুন বৈশিষ্ট্য, যা Unicode অক্ষরের বৈশিষ্ট্য চিহ্নিত করতে ব্যবহৃত হয়। এই বৈশিষ্ট্যটি ব্যবহার করে আপনি অক্ষরের প্রপার্টি বা বৈশিষ্ট্য অনুযায়ী প্যাটার্ন মেলাতে পারবেন, যেমন অক্ষরটি কেমন ধরনের অক্ষর (যেমন ক্যাপিটাল লেটার, ডিজিট, পাংকচুয়েশন, ইত্যাদি)।
এটি \p{Property=Value} এবং \P{Property=Value} সিনট্যাক্সে কাজ করে:
\p{Property=Value}: একটি নির্দিষ্ট বৈশিষ্ট্য বা ক্যাটেগরির অক্ষর মেলাতে ব্যবহার হয়।\P{Property=Value}: নির্দিষ্ট বৈশিষ্ট্য বা ক্যাটেগরির অক্ষর ছাড়া অন্য অক্ষর মেলাতে ব্যবহার হয়।
Unicode Property Escapes এর ব্যবহার
১. লেটার (Letter)
let regex = /\p{Letter}/u;
let str = "A";
console.log(regex.test(str)); // true
এখানে, \p{Letter} প্যাটার্নটি "A" অক্ষরকে মিলাবে, কারণ "A" একটি letter।
২. ডিজিট (Digit)
let regex = /\p{Digit}/u;
let str = "9";
console.log(regex.test(str)); // true
এখানে, \p{Digit} প্যাটার্নটি "9" অক্ষরকে মিলাবে, কারণ "9" একটি digit।
৩. পাংকচুয়েশন (Punctuation)
let regex = /\p{Punctuation}/u;
let str = "!";
console.log(regex.test(str)); // true
এখানে, \p{Punctuation} প্যাটার্নটি "!" অক্ষরকে মিলাবে, কারণ এটি একটি punctuation mark।
৪. ক্যাপিটাল লেটার (Uppercase Letter)
let regex = /\p{Uppercase_Letter}/u;
let str = "A";
console.log(regex.test(str)); // true
এখানে, \p{Uppercase_Letter} প্যাটার্নটি ক্যাপিটাল লেটার "A" কে মিলাবে।
৫. নন-লেটার (Non-Letter)
let regex = /\P{Letter}/u;
let str = "1";
console.log(regex.test(str)); // true
এখানে, \P{Letter} প্যাটার্নটি ডিজিট "1" কে মিলাবে, কারণ এটি একটি non-letter।
Unicode Property Escapes এর সুবিধা
- ভাষাগত নির্ভুলতা: আপনি Unicode অক্ষরের বৈশিষ্ট্য বা ক্যাটেগরি অনুসারে প্যাটার্ন তৈরি করতে পারবেন, যা বিশ্বের বিভিন্ন ভাষার অক্ষরের জন্য আরও নির্ভুল ম্যাচিং করে।
- সহজ স্ট্রিং ম্যানিপুলেশন: বিভিন্ন Unicode ক্যাটেগরি অনুযায়ী স্ট্রিংয়ের অংশ নির্বাচন করা সহজ হয়।
- ব্যবহারযোগ্যতা: এই বৈশিষ্ট্যটি JavaScript এর নতুন সংস্করণে প্রবর্তিত হওয়ায় এটি উন্নত ওয়েব অ্যাপ্লিকেশন এবং গ্লোবালাইজড সফটওয়্যারে গুরুত্বপূর্ণ ভূমিকা পালন করছে।
সারাংশ
Unicode হল একটি স্ট্যান্ডার্ড যা বিশ্বের সকল ভাষার অক্ষর এবং সিম্বলগুলোকে একটি একক কোড পয়েন্টে সংজ্ঞায়িত করে। Unicode Escape Sequences ব্যবহার করে আপনি RegExp-এ বিশেষ Unicode অক্ষর মেলাতে পারেন। অন্যদিকে, Unicode Property Escapes আরও শক্তিশালী প্যাটার্ন matching এর সুযোগ দেয়, যেখানে আপনি অক্ষরের বিভিন্ন বৈশিষ্ট্য (যেমন লেটার, ডিজিট, পাংকচুয়েশন ইত্যাদি) অনুযায়ী মেলাতে পারবেন। RegExp-এর এই বৈশিষ্ট্যগুলি ব্যবহার করে আপনি আন্তর্জাতিককৃত অ্যাপ্লিকেশন তৈরি করতে পারবেন যা বিশ্বের বিভিন্ন ভাষার সাথে সঠিকভাবে কাজ করবে।
Unicode Matching হল RegExp (Regular Expressions)-এ একটি শক্তিশালী বৈশিষ্ট্য যা স্ট্রিংয়ের মধ্যে ইউনিকোড চরিত্র (Unicode characters) খুঁজে বের করতে ব্যবহৃত হয়। ইউনিকোড হলো একটি আন্তর্জাতিক প্যাটার্ন যা বিশ্বের সব ভাষার অক্ষর ও প্রতীককে একটি সাধারণ ফরমেটে রূপান্তরিত করে। এতে রয়েছে প্রায় ১৫০টিরও বেশি ভাষার অক্ষর, প্রতীক, নম্বর, ইমোজি এবং অন্যান্য বিশেষ চিহ্ন।
RegExp ব্যবহার করে আপনি ইউনিকোড চরিত্রের সাথে মেলাতে পারবেন এবং এইচটিএমএল, জাভাস্ক্রিপ্ট অথবা অন্যান্য প্রযুক্তিতে ইউনিকোড স্ট্রিংয়ের মধ্যে অনুসন্ধান ও মান মিলানোর কাজ সহজে করতে পারবেন।
Unicode Matching এর পদ্ধতি
Unicode Matching সাধারণত ইউনিকোড প্যাটার্নের জন্য \u সিনট্যাক্স ব্যবহার করে করা হয়, যা পরে ৪টি হেক্সাডেসিমেল ডিজিট (\uXXXX) সহ একটি ইউনিকোড পয়েন্ট নির্দেশ করে।
Unicode Character এর Sintax
/\uXXXX/;
এখানে XXXX হলো একটি চার অঙ্কের হেক্সাডেসিমেল সংখ্যা, যা ইউনিকোড পয়েন্টকে চিহ্নিত করে।
Unicode Matching এর উদাহরণ
১. ইউনিকোড চরিত্রের খোঁজ
ধরা যাক, আমরা \u00A9 ইউনিকোড পয়েন্টের মাধ্যমে কপিরাইট সিম্বল (©) খুঁজে বের করতে চাই:
let regex = /\u00A9/;
let str = "This is the copyright symbol: ©";
console.log(regex.test(str)); // true
এখানে, \u00A9 প্যাটার্নটি কপিরাইট সিম্বল © এর জন্য ব্যবহৃত হয়েছে, এবং এটি স্ট্রিং "This is the copyright symbol: ©" এর মধ্যে মেলে।
২. একাধিক ইউনিকোড প্যাটার্ন খোঁজা
আপনি একাধিক ইউনিকোড প্যাটার্ন খুঁজতে [\uXXXX-\uYYYY] ব্যবহার করতে পারেন, যেখানে XXXX থেকে YYYY এর মধ্যে সব ইউনিকোড পয়েন্টের মিল হবে।
উদাহরণ:
let regex = /[\u0041-\u005A]/; // A-Z এর জন্য
let str = "Hello World!";
console.log(regex.test(str)); // true
এখানে, [\u0041-\u005A] প্যাটার্নটি ইংরেজি বড় হাতের অক্ষর (A-Z) খুঁজে বের করবে, কারণ \u0041 হচ্ছে A এবং \u005A হচ্ছে Z।
৩. ইউনিকোড ব্লক বা সিম্বল খোঁজা
RegExp-এ Unicode property escapes (যেমন \p{...}) ব্যবহার করে আপনি বিশেষ ইউনিকোড সিম্বল বা ব্লক খুঁজতে পারেন। এটি JavaScript এর আধুনিক সংস্করণে (ES2018 এবং পরবর্তী) ব্যবহৃত হয়।
let regex = /\p{Script=Greek}/u;
let str = "Παράδειγμα";
console.log(regex.test(str)); // true
এখানে, \p{Script=Greek} ইউনিকোড স্ক্রিপ্ট "Greek"-এর সমস্ত অক্ষর খুঁজে বের করবে, এবং স্ট্রিং "Παράδειγμα" এর মধ্যে এই প্যাটার্ন মিলে যাবে।
Unicode Matching এর কিছু সাধারণ ব্যবহার
ইমোজি খোঁজা: আপনি ইমোজি বা অন্যান্য বিশেষ চরিত্র খুঁজে বের করতে ইউনিকোড প্যাটার্ন ব্যবহার করতে পারেন। উদাহরণস্বরূপ, কিছু নির্দিষ্ট ইমোজি চরিত্র:
let regex = /\uD83D[\uDC00-\uDCFF]/; // Emoji range let str = "I love JavaScript! 💻"; console.log(regex.test(str)); // trueভাষাগত অক্ষর: যদি আপনি বিশেষ ভাষার অক্ষর বা স্ক্রিপ্ট খুঁজতে চান, যেমন বাংলা, গ্রীক বা আরবি অক্ষর, তাহলে Unicode স্ক্রিপ্টের প্যাটার্ন ব্যবহার করে এটি করা সম্ভব:
let regex = /\p{Script=Bangla}/u; let str = "বাংলা ভাষা"; console.log(regex.test(str)); // trueঅন্যন্য ইউনিকোড সিম্বল: আপনি বিশেষ ইউনিকোড সিম্বল যেমন কপিরাইট, ট্রেডমার্ক বা অন্য কোনো নির্দিষ্ট প্রতীক খুঁজতেও Unicode Matching ব্যবহার করতে পারেন:
let regex = /\u00AE/; // ™ ট্রেডমার্ক সিম্বল let str = "This is a trademark symbol: ®"; console.log(regex.test(str)); // true
সারাংশ
Unicode Matching RegExp এর মাধ্যমে আপনি স্ট্রিংয়ের মধ্যে ইউনিকোড চরিত্র বা সিম্বল খুঁজে বের করতে পারেন। এটি বিশেষভাবে কার্যকর যখন আপনি একাধিক ভাষার অক্ষর, ইমোজি, বা অন্যান্য বিশেষ চিহ্নের সাথে কাজ করছেন। \uXXXX সিনট্যাক্স ব্যবহার করে আপনি কোনো নির্দিষ্ট ইউনিকোড চরিত্র ম্যাচ করতে পারেন, এবং Unicode property escapes এর মাধ্যমে আপনি ইউনিকোড স্ক্রিপ্ট বা ব্লক খুঁজে বের করতে পারেন। এটি একটি শক্তিশালী টুল যখন আপনার স্ট্রিংয়ের মধ্যে ইউনিকোড বা বিশেষ চরিত্রগুলির জন্য অনুসন্ধান করতে হয়।
JavaScript এর RegExp এ Unicode Matching ব্যবহৃত হয় বিশেষ চরিত্রগুলোর (যেমন অন্যান্য ভাষার অক্ষর, সিম্বল ইত্যাদি) সাথে ম্যাচ করার জন্য। \u সিনট্যাক্স ব্যবহার করে আপনি Unicode Escape Sequences ব্যবহার করতে পারেন, যা আপনি সাধারণত বিভিন্ন Unicode অক্ষর বা সিম্বলকে RegExp প্যাটার্নে অন্তর্ভুক্ত করার জন্য ব্যবহার করবেন। এটি বিশেষত অন্যান্য ভাষার ক্যারেক্টার বা অক্ষর সংগ্রহে গুরুত্বপূর্ণ, যেমন চীনা, আরবি, বা জাপানি।
\u Escape Sequence
\u এর মাধ্যমে আপনি Unicode Code Points এর সাথে RegExp প্যাটার্নে মিল করতে পারেন। এটি একটি নির্দিষ্ট Unicode অক্ষরকে Escape Sequence হিসেবে ইনপুটে ব্যবহার করতে সহায়তা করে।
সিনট্যাক্স:
\u{code_point}
এখানে, {code_point} হল Unicode-এর ৪ থেকে ৬ হেক্সাডেসিমাল ডিজিটের কোড, যা একটি নির্দিষ্ট অক্ষর বা সিম্বলকে প্রতিনিধিত্ব করে।
Unicode Matching এর উদাহরণ
ধরা যাক, আপনি একটি প্যাটার্ন তৈরি করতে চান যা শুধুমাত্র এ অক্ষরের সাথে মেলে, আপনি Unicode Escape Sequence ব্যবহার করতে পারেন:
let regex = /\u0041/; // Unicode for 'A'
let str = "Apple";
console.log(regex.test(str)); // true
এখানে, \u0041 হচ্ছে 'A' এর Unicode কোড পয়েন্ট এবং regex.test(str) স্ট্রিং "Apple" এর মধ্যে 'A' খুঁজে বের করবে।
Unicode Character Range ব্যবহার করা
Unicode Escape Sequence ব্যবহার করে আপনি Character Rangesও তৈরি করতে পারেন। যেমন, আপনি যদি সমস্ত বড় ইংরেজি অক্ষরগুলির সাথে ম্যাচ করতে চান:
let regex = /[\u0041-\u005A]/; // Unicode range for A-Z
let str = "Hello World";
console.log(regex.test(str)); // true
এখানে, \u0041-\u005A এর মাধ্যমে আমরা ইংরেজি বড় অক্ষর A-Z এর Unicode রেঞ্জ ডিফাইন করেছি, যা স্ট্রিং "Hello World" এর মধ্যে পাওয়া যাবে।
Unicode এবং Special Characters Matching
Unicode প্যাটার্ন ব্যবহার করে আপনি বিশেষ সিম্বল বা অন্যান্য ভাষার অক্ষরগুলোর সাথে ম্যাচ করতে পারেন, যেমন আরবি অক্ষর:
let regex = /\u0627/; // Unicode for Arabic 'ا'
let str = "السلام عليكم";
console.log(regex.test(str)); // true
এখানে, \u0627 হচ্ছে আরবি অক্ষর 'ا' এর Unicode কোড পয়েন্ট এবং এটি "السلام عليكم" স্ট্রিংয়ের মধ্যে মেলে।
Unicode Property Escapes (ES2018 থেকে)
JavaScript ES2018 এর পর থেকে Unicode Property Escapes সুবিধা পাওয়া যায়, যার মাধ্যমে আপনি আরো জটিল Unicode প্যাটার্ন তৈরি করতে পারেন। এটি Unicode এর মধ্যে বিভিন্ন properties (যেমন, অক্ষরের শ্রেণী) অনুযায়ী matching করতে সাহায্য করে।
সিনট্যাক্স:
\p{Property=Value}
এখানে, Property হল Unicode property এবং Value হল তার মান।
উদাহরণ: Unicode Property Escapes
ধরা যাক, আপনি যদি সমস্ত ইংরেজি অক্ষর (কেস-ইনডিপেনডেন্ট) এর সাথে মিলাতে চান, তবে আপনি এই সিনট্যাক্স ব্যবহার করতে পারেন:
let regex = /\p{Letter}/u; // Matches any letter (uppercase or lowercase)
let str = "Hello 123";
console.log(regex.test(str)); // true
এখানে, \p{Letter} একটি Unicode property escape যা সমস্ত অক্ষরের (letters) সাথে মেলে। u ফ্ল্যাগটি এটিকে Unicode mode এ পরিচালিত করে।
সারাংশ
Unicode Matching RegExp-এ \u Escape Sequence ব্যবহার করে আমরা বিভিন্ন ভাষার অক্ষর, সিম্বল বা বিশেষ চরিত্রের সাথে ম্যাচ করতে পারি। Unicode Code Points দিয়ে আমরা অক্ষরের সাথে মিল করতে পারি, যেমন ইংরেজি অক্ষর, আরবি অক্ষর বা অন্যান্য ভাষার চরিত্র। JavaScript-এ Unicode Property Escapes (ES2018 থেকে) আরও শক্তিশালী matching এর সুবিধা দেয়, যা অক্ষরের শ্রেণী বা বৈশিষ্ট্যের উপর ভিত্তি করে matching করে।
JavaScript এ Unicode Property Escapes বা \p{} হল একটি বিশেষ ফিচার যা Unicode চরিত্রের প্রোপার্টি অনুযায়ী স্ট্রিংয়ে নির্দিষ্ট চরিত্রগুলি খুঁজে বের করতে ব্যবহৃত হয়। এটি RegExp প্যাটার্নের মধ্যে ব্যবহার করা হয় এবং Unicode প্যাটার্নের ভিত্তিতে চরিত্র শনাক্ত করতে সাহায্য করে।
Unicode Property Escapes 2018 সালের পরবর্তী ECMAScript 2018 (ES9) স্ট্যান্ডার্ডে অন্তর্ভুক্ত করা হয়েছে এবং এটি RegExp-এর মাধ্যমে একটি নির্দিষ্ট Unicode প্রোপার্টির জন্য ম্যাচিং করতে ব্যবহৃত হয়।
Unicode Property Escapes এর গঠন
\p{} এবং \P{} দুটি প্রধান Unicode Property Escapes প্যাটার্নের মাধ্যমে আমরা Unicode প্রোপার্টি অনুসারে স্ট্রিংয়ের মধ্যে চরিত্র খুঁজে বের করতে পারি।
\p{PropertyName=Value}: এটি একটি Unicode প্রোপার্টির সাথে মেলে, যেখানেPropertyNameহল Unicode প্রোপার্টির নাম এবংValueহল সেই প্রোপার্টির মান।\P{PropertyName=Value}: এটি\p{}এর বিপরীত, অর্থাৎ এটি সেই প্রোপার্টি বা মানের সাথে মেলে না।
Unicode Property Escapes এর উদাহরণ
১. \p{Letter}: কোন চরিত্র যে একটি অক্ষর (Letter)
let regex = /\p{Letter}/u;
let str = "Hello World!";
console.log(regex.test(str)); // true
এখানে, \p{Letter} স্ট্রিংয়ের প্রথম অক্ষর "H" এর সাথে মিলে যায় কারণ "H" একটি অক্ষর (Letter)।
২. \p{Number}: কোন চরিত্র যে একটি সংখ্যা (Number)
let regex = /\p{Number}/u;
let str = "2024";
console.log(regex.test(str)); // true
এখানে, \p{Number} স্ট্রিং "2024" এর মধ্যে একটি সংখ্যা (digit) খুঁজে পায় এবং true রিটার্ন করে।
৩. \p{Emoji}: কোন চরিত্র যে একটি ইমোজি (Emoji)
let regex = /\p{Emoji}/u;
let str = "😊";
console.log(regex.test(str)); // true
এখানে, \p{Emoji} ইমোজি স্ট্রিং "😊" এর সাথে মেলে, এবং true রিটার্ন করে।
৪. \p{Punctuation}: কোন চরিত্র যে একটি পাংকচুয়েশন চিহ্ন (Punctuation)
let regex = /\p{Punctuation}/u;
let str = "!";
console.log(regex.test(str)); // true
এখানে, \p{Punctuation} পংকচুয়েশন চিহ্ন (যেমন !) এর সাথে মেলে এবং true রিটার্ন করে।
৫. \P{Whitespace}: কোন চরিত্র যে সাদা স্পেস নয় (Non-whitespace character)
let regex = /\P{Whitespace}/u;
let str = "Hello";
console.log(regex.test(str)); // true
এখানে, \P{Whitespace} কোনো সাদা স্পেস (space, tab, new line) ছাড়া একক চরিত্র খুঁজে বের করবে। স্ট্রিং "Hello" এর মধ্যে কোনো সাদা স্পেস নেই, তাই এটি মেলে।
Unicode Property Escapes এর সুবিধা
- Unicode ক্যারেক্টারের নির্দিষ্ট প্রোপার্টি অনুসন্ধান: আপনি প্যাটার্নের মধ্যে Unicode প্রোপার্টির ওপর ভিত্তি করে চরিত্র খুঁজে বের করতে পারেন। যেমন: অক্ষর, সংখ্যা, ইমোজি, পাংকচুয়েশন চিহ্ন, ইত্যাদি।
- অত্যন্ত নির্ভুল ম্যাচিং: Unicode প্রোপার্টি ব্যবহার করে খুব নির্দিষ্ট ধরনের চরিত্র খুঁজে বের করা সম্ভব হয়, যা সাধারণ RegExp মেটাচারিত্র দিয়ে করা যায় না।
- বিশ্বব্যাপী ভাষার জন্য উপযুক্ত: Unicode প্রোপার্টি Escapes আন্তর্জাতিক ভাষা এবং স্ক্রিপ্টগুলির মধ্যে যেকোনো চরিত্র সহজে শনাক্ত করতে সাহায্য করে।
সারাংশ
JavaScript-এ Unicode Property Escapes বা \p{} প্যাটার্ন ব্যবহার করে Unicode প্রোপার্টির ভিত্তিতে নির্দিষ্ট চরিত্র বা চিহ্ন খুঁজে বের করা সম্ভব হয়। এটি স্ট্রিংয়ে সঠিক ক্যাটাগরির চরিত্র খুঁজে বের করার জন্য শক্তিশালী একটি টুল, যেমন অক্ষর (Letter), সংখ্যা (Number), ইমোজি (Emoji), পাংকচুয়েশন চিহ্ন (Punctuation), ইত্যাদি। এটি RegExp এর মাধ্যমে আরও নির্দিষ্ট এবং কার্যকরী স্ট্রিং ম্যাচিংয়ের সুযোগ প্রদান করে।
RegExp-এ Unicode matching ব্যবহার করার মাধ্যমে আপনি বিশ্বের সব ভাষার এবং বিশেষ চরিত্রগুলির সাথে সঠিকভাবে মিল খুঁজে পেতে পারেন। JavaScript-এ Unicode সমর্থন রয়েছে, এবং এর জন্য কিছু বিশেষ flags এবং কৌশল আছে যা প্যাটার্নকে আরও উন্নত করে তোলে।
Unicode Matching এর জন্য Flags
JavaScript-এ Unicode এর সাথে কাজ করতে u ফ্ল্যাগ ব্যবহৃত হয়। এটি RegExp-কে ইউনিকোড ভিত্তিক স্ট্রিং মেলানোর ক্ষমতা প্রদান করে।
u (Unicode)
u ফ্ল্যাগটি RegExp-এর জন্য বিশেষভাবে Unicode স্ট্রিং সাপোর্ট প্রদান করে। এটি স্ট্রিংয়ের সমস্ত ইউনিকোড ক্যারেক্টার এবং স্কেলেবল চিহ্নগুলি সঠিকভাবে মিলায়। এর মাধ্যমে আপনি ইউনিকোডের চরিত্রের বিভিন্ন অংশ যেমন emoji, diacritics বা non-BMP (Basic Multilingual Plane) চরিত্রগুলোর সাথে কাজ করতে পারবেন।
u ফ্ল্যাগের ব্যবহার
সিনট্যাক্স:
let regex = /\p{Letter}/u;
let str = "你好";
console.log(regex.test(str)); // true
এখানে, \p{Letter} প্যাটার্নটি ইউনিকোডের letter ক্যাটাগরির সকল অক্ষরের সাথে মিলবে, এবং u ফ্ল্যাগ এর ইউনিকোড চিহ্নগুলিকে সঠিকভাবে সমর্থন করে।
উদাহরণ ১: Emoji Matching
let regex = /\p{Emoji}/u;
let str = "I love coding ❤️";
console.log(regex.test(str)); // true
এখানে, \p{Emoji} প্যাটার্নটি স্ট্রিংয়ের মধ্যে ❤️ (emoji) সঠিকভাবে মিলিয়ে নেবে, কারণ u ফ্ল্যাগটি ইউনিকোডের emoji সাপোর্ট করে।
উদাহরণ ২: Non-BMP Character Matching
let regex = /\p{Script=Han}/u;
let str = "你好";
console.log(regex.test(str)); // true
এখানে, \p{Script=Han} প্যাটার্নটি ইউনিকোড স্ক্রিপ্ট Han (যা চীনা চরিত্রের জন্য ব্যবহৃত) এর সাথে স্ট্রিংয়ের মিল খুঁজে বের করবে।
Unicode Property Escapes
JavaScript ES2018 থেকে Unicode Property Escapes এন্ট্রি করা হয়েছে, যা RegExp-এ ইউনিকোডের বিভিন্ন প্রপার্টি সনাক্ত করতে ব্যবহৃত হয়। এটি \p{} এবং \P{} সিনট্যাক্স ব্যবহার করে ইউনিকোডের প্রপার্টি অনুযায়ী চরিত্র খুঁজে বের করতে সাহায্য করে।
\p{}: Unicode প্রপার্টি সনাক্ত করতে ব্যবহৃত হয়।\P{}: একটি Unicode প্রপার্টি না পাওয়া চরিত্রের জন্য ব্যবহৃত হয়।
উদাহরণ ৩: Unicode Property Escapes
let regex = /\p{Letter}/gu;
let str = "abc 你好";
console.log(regex.test(str)); // true
এখানে, \p{Letter} প্যাটার্নটি স্ট্রিংয়ের মধ্যে abc এবং 你好 এর অক্ষর মিলাতে সক্ষম হবে।
Best Practices for Unicode Matching
uফ্ল্যাগ ব্যবহার করুন: যদি আপনি Unicode চরিত্রগুলির সাথে কাজ করতে চান, তবেuফ্ল্যাগ ব্যবহার করা অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি আপনাকে সঠিকভাবে emoji, diacritics, বা non-BMP চরিত্রের সাথে কাজ করতে সক্ষম করবে।- Unicode Property Escapes ব্যবহার করুন: ES2018-এর পর Unicode Property Escapes ব্যবহার করা সহজ এবং শক্তিশালী হয়েছে, যা ইউনিকোডের নির্দিষ্ট প্রপার্টি (যেমন
\p{Letter}বা\p{Emoji}) খুঁজে বের করতে সাহায্য করে। - Normalization ব্যবহার করুন: কিছু ইউনিকোড চরিত্র composed (সংযুক্ত) বা decomposed (ভেঙে দেওয়া) হতে পারে। এটি মেলানোর সময় অসুবিধা তৈরি করতে পারে। তাই স্ট্রিংগুলিকে Unicode normalization এর মাধ্যমে সমান ফর্মে নিয়ে আসা উচিত।
- অপারেটরের সাথে সতর্কতা: RegExp-এ ইউনিকোডের কাজ করার সময়
.match(),.test(),.replace()এর মতো মেথডেgফ্ল্যাগ ব্যবহার করুন, যেন এটি স্ট্রিংয়ের প্রতিটি মিল খুঁজে বের করে।
সারাংশ
Unicode matching-এ RegExp এর u ফ্ল্যাগ এবং Unicode Property Escapes ব্যবহারের মাধ্যমে আপনি বিশ্বব্যাপী ভাষা এবং বিশেষ চরিত্রগুলির সাথে কাজ করতে পারবেন। এর মাধ্যমে আপনি স্ট্রিংয়ের মধ্যে emoji, diacritics, non-BMP চরিত্রগুলো সঠিকভাবে মেলাতে সক্ষম হবেন। RegExp-এ Unicode matching এর ক্ষেত্রে কিছু বেস্ট প্র্যাকটিস অনুসরণ করলে, আপনার কোড আরও কার্যকর এবং নির্ভুল হবে।
Read more