কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে স্ট্রিং-এর অক্ষর বড় হাতের (uppercase) কি ছোট হাতের (lowercase) কীভাবে জানবেন?

অক্ষরের কেস (Case) যাচাই করার পদ্ধতি

জাভাস্ক্রিপ্টে কোনো অক্ষর বড় হাতের (uppercase) কি ছোট হাতের (lowercase) তা জানার সবচেয়ে সহজ উপায় হলো সেই অক্ষরকে সংশ্লিষ্ট কেসে কনভার্ট করে তুলনা করা।

বেসিক লজিক

function checkCase(ch) {
  // প্রথমে নম্বর কিনা চেক করুন
  if (!isNaN(ch * 1)) {
    return 'numeric';
  }
  
  // বড় হাতের চেক: নিজে নিজের uppercase-এর সাথে তুলনা
  if (ch === ch.toUpperCase()) {
    return 'uppercase';
  }
  
  // ছোট হাতের চেক: নিজে নিজের lowercase-এর সাথে তুলনা
  if (ch === ch.toLowerCase()) {
    return 'lowercase';
  }
  
  return 'unknown'; // সিম্বল, স্পেস, ইমোজি ইত্যাদি
}

উদাহরণ ও আউটপুট

console.log(checkCase('a')); // 'lowercase'
console.log(checkCase('A')); // 'uppercase'
console.log(checkCase('1')); // 'numeric'
console.log(checkCase('@')); // 'unknown' (নই বড় হাতের নই ছোট হাতের)

উন্নত সংস্করণ: Unicode সাপোর্টসহ

উপরোক্ত পদ্ধতি ASCII-এর জন্য ভালো কাজ করে, কিন্তু ইউনিকোড (বাংলা, ইমোজি, এক্সেন্টেড ল্যাটিন) এর জন্য নিবিড় নয়। আধুনিক পদ্ধতি:

function checkCaseAdvanced(ch) {
  if (ch.length !== 1) return 'not-a-single-char';
  
  const code = ch.codePointAt(0);
  
  // নম্বর (০-৯, বাংলা ০-৯, ইত্যাদি)
  if (/\p{N}/u.test(ch)) return 'numeric';
  
  // বড় হাতের (Unicode Lu ক্যাটাগরি)
  if (/\p{Lu}/u.test(ch)) return 'uppercase';
  
  // ছোট হাতের (Unicode Ll ক্যাটাগরি)
  if (/\p{Ll}/u.test(ch)) return 'lowercase';
  
  // অন্যান্য লেটার (Titlecase, Modifier, Other)
  if (/\p{L}/u.test(ch)) return 'other-letter';
  
  return 'symbol-or-other';
}

console.log(checkCaseAdvanced('আ')); // 'other-letter' (বাংলা স্বরবর্ণ — Ll বা Lu নয়)
console.log(checkCaseAdvanced('A')); // 'uppercase'
console.log(checkCaseAdvanced('α')); // 'lowercase' (গ্রিক)
console.log(checkCaseAdvanced('١')); // 'numeric' (আরবিক ডিজিট)

Regex প্যাটার্ন এক নজরে

প্যাটার্নঅর্থ
/[A-Z]/শুধু ASCII বড় হাতের (A-Z)
/[a-z]/শুধু ASCII ছোট হাতের (a-z)
/\p{Lu}/uUnicode Uppercase Letter (সব ভাষা)
/\p{Ll}/uUnicode Lowercase Letter (সব ভাষা)
/\p{L}/uUnicode যেকোনো লেটার
/\p{N}/uUnicode যেকোনো নম্বর

স্ট্রিং-এর সব অক্ষর চেক করা

function analyzeString(str) {
  return [...str].map(ch => ({
    char: ch,
    type: checkCaseAdvanced(ch)
  }));
}

console.table(analyzeString('Hello বাংলা ১২৩!'));
/*
┌─────────┬────────┬──────────────┐
│ (index) │ char   │ type         │
├─────────┼────────┼──────────────┤
│ 0       │ 'H'    │ 'uppercase'  │
│ 1       │ 'e'    │ 'lowercase'  │
│ 2       │ 'l'    │ 'lowercase'  │
│ 3       │ 'l'    │ 'lowercase'  │
│ 4       │ 'o'    │ 'lowercase'  │
│ 5       │ ' '    │ 'symbol-or-other' │
│ 6       │ 'ব'    │ 'other-letter'    │
│ 7       │ 'া'    │ 'other-letter'    │
│ 8       │ 'ং'    │ 'symbol-or-other' │
│ 9       │ 'ল'    │ 'other-letter'    │
│ 10      │ 'া'    │ 'other-letter'    │
│ 11      │ ' '    │ 'symbol-or-other' │
│ 12      │ '১'    │ 'numeric'    │
│ 13      │ '২'    │ 'numeric'    │
│ 14      │ '৩'    │ 'numeric'    │
│ 15      │ '!'    │ 'symbol-or-other' │
└─────────┴────────┴──────────────┘
*/

সারামারি: সাধারণ ASCII-এর জন্য ch === ch.toUpperCase() প্যাটার্ন যথেষ্ট। ইউনিকোড/বহুভাষিক সাপোর্টের জন্য Unicode প্রপার্টি এস্কেপ (\p{Lu}, \p{Ll}) সহ Regex ব্যবহার করুন।

  1. জাভাস্ক্রিপ্টে অ্যারে ফিল্টারিং প্রথম অক্ষর অনুযায়ী

  2. জাভাস্ক্রিপ্টে কেস-ইনসেনসিটিভ স্ট্রিং তুলনা

  3. জাভাস্ক্রিপ্টে শুধু একটা ভেরিয়েবল ব্যবহার করে স্ট্রিং রিভার্স করা

  4. জাভাস্ক্রিপ্টে বাইনারি নম্বর ব্যবহার করে স্ট্রিং কেস সোয়াপ করা