Lower-Upper সমান সমান

বাংলা সিনেমায় দেখস না, চৌধুরী সাহেব এসে জ্বালাময়ী কথা বলতেছে— এই তুই গরিবের সন্তান হয়ে আমার বড়লোক চৌধুরী বংশের একমাত্র কন্যার দিকে হাত বাড়াস। তোর কত্ত বড় সাহস। ইয়া ডিশুমাই, ডিশুমাই, ডিশুমাই।
অর্থাৎ গরিবের সাথে বড়লোকের মিল খায় না। মিল খায় গরিবের সাথে গরিবের; না হয় বড়লোকের সাথে বড়লোকের।
স্ট্রিংয়ের ক্ষেত্রেও এমন বড়লোক-ছোটলোক ব্যাপার আছে। একদম বড়লোক-ছোটলোক না হলেও বড় হাতের ইংরেজি অক্ষর আর ছোট হাতের ইংরেজি অক্ষর আছে।
যেমন দেখ, নিচে দুইটা ভেরিয়েবল আছে। একটা ভেরিয়েবলের নাম হচ্ছে subject, আরেকটা ভেরিয়েবলের নাম book, আর এই দুইটার মান একই জিনিস বুঝালেও বানানে হালকা একটু কিন্তু আছে। subject নামক ভেরিয়েবলের মানের মধ্যে 'C' বড় হাতের এবং book নামক ভেরিয়েবলের মানের মধ্যে 'c' ছোট হাতের। এই ছোট হাতের C আর বড় হাতের c কিন্তু সেইম না।
const subject = 'Chemistry';
const book = 'chemistry';
if (subject === book) {
console.log('i am reading book');
} else {
console.log('hudai prista ultai');
}
Output: hudai prista ultaiএখানে else-এর অংশটি আউটপুট হিসেবে দেখাবে। কারণ, মান দুইটা সেইম না। সেইম জিনিস কিন্তু বড় হাতের অক্ষর আর ছোট হাতের অক্ষরের জন্য আলাদা আলাদা স্ট্রিং হিসেবে গণ্য করাকে বলে case-sensitive। case-sensitive বলার কারণ হচ্ছে, বড় হাতের অক্ষরগুলাকে বলে upper case, আর ছোট হাতের অক্ষরগুলাকে বলে lower case, আর এই দুইটা আলাদা বুঝানোর জন্য বলে case (upper এবং lower) অর্থাৎ কেইসের সেন্সিটিভ।
দুইটা উদারহণ দিয়ে বিষয়টা ব্যাখ্যা করি—
ইংরেজিতে ছোট হাতের অক্ষরকে যেমন abcd এইগুলাকে lower case অক্ষর বলে, আর বড় হাতের অক্ষর যেমন ABCD এইগুলাকে uppercase অক্ষর বলে। আর কেইস সেন্সিটিভ বলতে বুঝায় abcd আর ABCD এই দুইটা সেইম না। আবার কিছু কিছু ক্ষেত্রে কেইসকে ইগনোরও করতে হয়। তখন abcd আর ABCD দুইটাকে সেইম ধরে নেয়ার দরকার হয়।
যেমন, ই-মেইল এড্রেস বড় হাতের অক্ষর নাকি ছোট হাতের অক্ষর, সেটা মেটার করে না। আবার Dhaka এবং DHAKA একই জায়গা বুঝায়। অন্যদিকে পাসওয়ার্ডের জন্য FoolBanu আর FOOLBANU কিন্তু সেইম পাসওয়ার্ড না; বরং আলাদা আলাদা পাসওয়ার্ড হিসেবে ধরা হয়। অর্থাৎ ই-মেইল এড্রেস কেইস ইগনোর করে অন্যদিকে পাসওয়ার্ড কেইস সেন্সিটিভ।
এখন একটু দেখে নে, কীভাবে খুব সহজেই কোনো স্ট্রিংয়ের সব ক্যারেক্টারকে পুরাপুরি ছোট হাতের অক্ষরে কনভার্ট করে ফেলতে পারবি। জাস্ট স্ট্রিংয়ের নামের পর ডট চিহ্ন দিয়ে তারপর toLowerCase লিখে দুইটা ব্র্যাকেট দিয়ে দিবি। নিচের মতো করে—
const name = 'noMAD d MAD';
const lower = name.toLowerCase();
console.log(lower);
Output: nomad d madএকইভাবে কোনো স্ট্রিং সব ক্যারেক্টারকে পুরাপুরি বড় হাতের অক্ষরে কনভার্ট করে ফেলার জন্য স্ট্রিংয়ের নামের পর ডট চিহ্ন দিয়ে তারপর toUpperCase লিখে দুইটা ব্র্যাকেট দিয়ে দিবি। নিচের মতো করে—
const name = 'noman d MAN';
const upper = name.toUpperCase();
console.log(upper);
Output: NOMAN D MANসাধারণভাবে জাভাস্ক্রিপ্টের স্ট্রিং তুলনা করলে সেটা কেইস সেন্সিটিভ স্টাইলে তুলনা করে। সেটা একটু আগেই দেখছস। তবে কখনো কখনো কেইস সেন্সিটিভ ইগনোর করে তুলনা করতে হয় বা কম্পেয়ার করতে হয়। তখন উপায় হচ্ছে, দুইটাকে জোর করে সেইম কেইস বানাতে হবে। অর্থাৎ হয় দুইটা স্ট্রিংকেই upper কেস বা বড় হাতের অক্ষরে নিয়ে তুলনা করবি, না হয় দুইটাকেই ছোট হাতের অক্ষরে কনভার্ট করে তারপর তুলনা করবি। নিচের আমি দুইটাকে ছোট হাতের অক্ষরে কনভার্ট করে তারপর তুলনা করতেছি।
const subject = 'Chemistry';
const book = 'chemistry';
if (subject.toLowerCase() === book.toLowerCase()) {
console.log('i am reading book');
} else {
console.log('hudai prista ultai');
}
Output: i am reading bookPractice:
- একটা ই-মেইল আছে const email = 'User@Example.Com'; এই ই-মেইলকে ছোট হাতের অক্ষরে কনভার্ট কর।
- const greeting = 'hELlo WoRLd'; এই স্ট্রিং পুরোটা বড় হাতের অক্ষরে এবং ছোট হাতের অক্ষরে কনভার্ট করে দেখ।
- কেইস ইগনোর করে চেক কর const language = 'JavaScript'; এর মধ্যে script আছে কি না।
- const text = 'NodeJs'; এই স্ট্রিংয়ের প্রথম ক্যারেক্টার বড় হাতের কি না, তা চেক কর।