Kobo Toolbox – এ অ্যাডভান্স লজিক(regex) এর ব্যাখ্যা। উদাহরণ সহঃ

KoBoToolbox-এর XLSForm ডিজাইনে রেগুলার এক্সপ্রেশন (Regex) ব্যবহার করে আমরা ফর্মের ইনপুট ডেটার ধরন নিয়ন্ত্রণ করতে পারি। এটি ফর্মে নির্দিষ্ট প্যাটার্নের ডেটা যাচাই করতে সাহায্য করে, যেমন মোবাইল নম্বর, ই-মেইল, বা লিমিটেড সংখ্যার ইনপুট। এই গাইডে KoBoToolbox-এর জন্য প্রয়োজনীয় Regex উদাহরণ এবং তাদের ব্যাখ্যা দেওয়া হলো।

XLSForm -এ রেগুলার এক্সপ্রেশন

XLSForm-এ একটি প্রশ্নের constraint কলামে Regex ব্যবহার করা হয়। এছাড়া constraint_message কলামে ব্যবহারকারীর জন্য একটি কাস্টম বার্তা দেখানো যায়।

ফরম্যাট:

  • constraint: regex(., '<pattern>')
  • constraint_message: “আপনার ইনপুট সঠিক নয়।”

উদাহরণ ও ব্যাখ্যা

1. শুধুমাত্র ইংরেজি অক্ষর (লেটার):

regex^[a-zA-Z]+$
  • ব্যাখ্যা:
    • ^: ইনপুটের শুরু।
    • [a-zA-Z]: ছোট হাতের (a-z) এবং বড় হাতের (A-Z) অক্ষর।
    • +: কমপক্ষে ১টি অক্ষর থাকতে হবে, যত খুশি থাকতে পারে।
    • $: ইনপুটের শেষে।
  • উদাহরণ:
    • সঠিক: hello, WORLD, Suhan
    • ভুল: 123, hello123, hi!

2. শুধুমাত্র বাংলা অক্ষর:

regex^[অ-ঔঋএঐও-হ্‌ঁংঃ]+$
  • ব্যাখ্যা:
    • [অ-ঔঋএঐও-হ্‌ঁংঃ]: বাংলা স্বরবর্ণ, ব্যঞ্জনবর্ণ, এবং অন্যান্য বাংলা চিহ্ন।
    • +: কমপক্ষে ১টি থাকতে হবে।
  • উদাহরণ:
    • সঠিক: সোহান, ড্যাটা
    • ভুল: 123, বাংলা123, aবাংলা

3. ই-মেইল যাচাই:

regex^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
  • ব্যাখ্যা:
    • ^[a-zA-Z0-9._%+-]+: ই-মেইলের ইউজারনেম অংশে যেকোনো অক্ষর, সংখ্যা, বা কিছু বিশেষ চিহ্ন।
    • @: ই-মেইলের ডোমেইন আলাদা করার জন্য।
    • [a-zA-Z0-9.-]+: ডোমেইনে সংখ্যা, অক্ষর, বা ডট থাকতে পারে।
    • \.[a-zA-Z]{2,}$: ডোমেইনের শেষে ডটের পরে কমপক্ষে ২টি অক্ষর থাকতে হবে।
  • উদাহরণ:
    • সঠিক: example@gmail.com, user.name@domain.co
    • ভুল: user@domain, @gmail.com

4. মোবাইল নম্বর (বাংলাদেশ, ১১ ডিজিট):

regex^01[3-9]\d{8}$
  • ব্যাখ্যা:
    • ^01: বাংলাদেশি মোবাইল নম্বর ০১ দিয়ে শুরু হবে।
    • [3-9]: দ্বিতীয় ডিজিট হতে পারে ৩ থেকে ৯-এর মধ্যে।
    • \d{8}: তারপরে ঠিক ৮টি সংখ্যা।
    • $: ইনপুটের শেষে।
  • উদাহরণ:
    • সঠিক: 01712345678, 01987654321
    • ভুল: 01112345678, 0131234567

5. পোস্টাল কোড (শুধু ৪ ডিজিট):

regex^\d{4}$
  • ব্যাখ্যা:
    • ^\d{4}$: ইনপুটে শুধুমাত্র ৪টি সংখ্যা থাকতে হবে।
  • উদাহরণ:
    • সঠিক: 1207, 4000
    • ভুল: 123, 12076, abcd

6. শুধু ডেসিমাল নম্বর (দুই দশমিক পর্যন্ত):

regex^\d+(\.\d{1,2})?$
  • ব্যাখ্যা:
    • ^\d+: কমপক্ষে ১টি সংখ্যা থাকতে হবে।
    • (\.\d{1,2})?: ঐচ্ছিকভাবে (Optional) একটি ডটের পরে ১ বা ২টি সংখ্যা থাকতে পারে।
    • $: ইনপুটের শেষে।
  • উদাহরণ:
    • সঠিক: 123, 45.67, 89.5
    • ভুল: 123.456, abc, 12.

7. শুরুর এবং শেষের স্পেস ছাড়া শব্দ:

regex^\S(.*\S)?$
  • ব্যাখ্যা:
    • ^\S: ইনপুট শুরুতে স্পেস থাকতে পারবে না।
    • (.*\S)?: ইনপুট শেষে কমপক্ষে একটি অক্ষর বা সংখ্যা থাকতে হবে।
    • $: ইনপুটের শেষে।
  • উদাহরণ:
    • সঠিক: hello, no_space
    • ভুল: hello, world

8. পাসওয়ার্ড (কমপক্ষে ৮ অক্ষর, ১ সংখ্যা, ১ বিশেষ চিহ্ন):

regex^(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$
  • ব্যাখ্যা:
    • (?=.*[A-Z]): অন্তত ১টি বড় হাতের অক্ষর থাকতে হবে।
    • (?=.*\d): অন্তত ১টি সংখ্যা থাকতে হবে।
    • (?=.*[@$!%*?&]): অন্তত ১টি বিশেষ চিহ্ন থাকতে হবে।
    • [A-Za-z\d@$!%*?&]{8,}: মোট অক্ষরের সংখ্যা কমপক্ষে ৮টি হতে হবে।
  • উদাহরণ:
    • সঠিক: Password1!, Hello@123
    • ভুল: password, Pass1, 12345678

9. তারিখ (DD/MM/YYYY):

regex^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[0-2])/\d{4}$
  • ব্যাখ্যা:
    • (0[1-9]|[12][0-9]|3[01]): দিন (০১-৩১)।
    • /: স্ল্যাশ দিয়ে আলাদা।
    • (0[1-9]|1[0-2]): মাস (০১-১২)।
    • /: আবার স্ল্যাশ।
    • \d{4}: বছর (৪ ডিজিট)।
  • উদাহরণ:
    • সঠিক: 01/01/2023, 31/12/1999
    • ভুল: 32/01/2023, 12/13/2023

10. শুধু হ্যাঁ বা না (Yes/No):

regex^(Yes|No|yes|no)$

ভুল: YES, maybe

ব্যাখ্যা:

^: শুরুতে।

(Yes|No|yes|no): ইনপুট হতে হবে Yes, No, yes, অথবা no

$: ইনপুট শেষে।

উদাহরণ:

সঠিক: Yes, no

১১. শুধু বর্ণমালার শব্দ এবং স্পেস (A-Z এবং স্পেস)

regex^[a-zA-Z ]+$

ব্যাখ্যা:

  • ^[a-zA-Z ]+$: শুধু ছোট হাতের (a-z), বড় হাতের (A-Z) অক্ষর এবং স্পেস থাকবে।
    উদাহরণ:
  • সঠিক: Hello World, Chat GPT
  • ভুল: Hello123, Good!Morning

১২. শুধু জোড় সংখ্যা (Even Numbers)

regex^\d*[02468]$

ব্যাখ্যা:

  • ^\d*: যেকোনো দৈর্ঘ্যের সংখ্যা।
  • [02468]$: শেষ সংখ্যা হতে হবে ০, ২, ৪, ৬, বা ৮।
    উদাহরণ:
  • সঠিক: 2, 44, 102
  • ভুল: 3, 123, 567

১৩. URL যাচাই

regex^(https?://)?(www\\.)?[a-zA-Z0-9-]+\\.[a-zA-Z]{2,}(/.*)?$

ব্যাখ্যা:

  • ^(https?://)?: শুরুতে http:// বা https:// থাকতে পারে বা না-ও থাকতে পারে।
  • (www\\.)?: www. ঐচ্ছিক।
  • [a-zA-Z0-9-]+\\.[a-zA-Z]{2,}: ডোমেইন নাম এবং এক্সটেনশন।
  • (/.*)?$: শেষে ঐচ্ছিকভাবে একটি পাথ থাকতে পারে।
    উদাহরণ:
  • সঠিক: http://example.com, www.example.org, example.net
  • ভুল: example, http:/example

১৪. শুধু বড় হাতের অক্ষর

regex^[A-Z]+$

ব্যাখ্যা:

  • ^[A-Z]+$: শুধু বড় হাতের অক্ষর (A-Z)।
    উদাহরণ:
  • সঠিক: HELLO, WORLD
  • ভুল: Hello, 123

১৫. বিশেষ চিহ্নের সাথে মিশ্রিত সংখ্যা

regex^[0-9!@#$%^&*()]+$

ব্যাখ্যা:

  • ^[0-9!@#$%^&*()]+$: সংখ্যা এবং বিশেষ চিহ্ন (!, @, #, $, ইত্যাদি) থাকবে।
    উদাহরণ:
  • বৈধ: 1234!, 789@#
  • অবৈধ: abcd, 12ab

১৬. শুধু ভাওয়েল (Vowels Only)

regex^[aeiouAEIOU]+$

ব্যাখ্যা:

  • ^[aeiouAEIOU]+$: শুধু ছোট এবং বড় হাতের স্বরবর্ণ (a, e, i, o, u)।
    উদাহরণ:
  • সঠিক: aeiou, AEIOU
  • ভুল: hello, 123

১৭. শুধু ৫ অক্ষরের শব্দ

regex^\\w{5}$

ব্যাখ্যা:

  • ^\\w{5}$: শুধুমাত্র ৫টি অক্ষর থাকতে পারবে (A-Z, a-z, 0-9 এবং _)।
    উদাহরণ:
  • সঠিক: hello, 12345
  • ভুল: helloo, hi

১৮. শুরুর এবং শেষের সংখ্যা (স্যান্ডউইচ)

regex^\d.*\d$

ব্যাখ্যা:

  • ^\\d: শুরুতে সংখ্যা।
  • .*: মাঝখানে যেকোনো কিছু।
  • \\d$: শেষে সংখ্যা।
    উদাহরণ:
  • সঠিক: 1abc2, 12, 1234
  • ভুল: abc, abc1

১৯. ট্যাগ ফরম্যাট (HTML/XML)

regex^<([a-zA-Z]+)>(.*)</\\1>$

ব্যাখ্যা:

  • <([a-zA-Z]+)>: শুরু ট্যাগ।
  • (.*): মাঝখানে কনটেন্ট।
  • </\\1>: শেষ ট্যাগ (শুরু ট্যাগের সাথে মিলবে)।
    উদাহরণ:
  • সঠিক: <div>Hello</div>, <p>Text</p>
  • ভুল: <div>Hello</span>, <p>

২০. ফোন নম্বর (যে কোনো ফরম্যাট)

regex^\\+?\\d{1,4}?[-.\\s]?\\(?(\\d{1,3})\\)?[-.\\s]?\\d{1,4}[-.\\s]?\\d{1,4}[-.\\s]?\\d{1,9}$

ব্যাখ্যা:

  • \\+?\\d{1,4}?: দেশে কোড (+ সহ)।
  • [-.\\s]?: বিভাজক (ড্যাশ, ডট, স্পেস)।
  • \\(?(\\d{1,3})\\)?: এরিয়া কোড।
  • \\d{1,9}$: বাকী নম্বর।
    উদাহরণ:
  • সঠিক: +1-800-555-1234, (123) 456-7890
  • ভুল: 12345, phone123

XLSForm-এ ব্যবহারের নিয়ম

  1. constraint কলাম: প্রতিটি প্রশ্নের জন্য উপরের প্যাটার্ন যোগ করুন। উদাহরণ: type name label constraint constraint_message text number আপনার ইনপুট দিন regex(., ‘^\d{1,2}$’) “শুধু ১ বা ২ ডিজিটের সংখ্যা দিন।”
  2. constraint_message কলাম: ব্যবহারকারীর জন্য নির্দেশনা বা সঠিক ফিডব্যাক দিন।
কবো টুলবক্সের উপর সরাসরি প্রশিক্ষণ নিতে চাইলে এখনই জয়েন করুন!
বিস্তারিত জানতে ভিজিট করুন
: Kobo Toolbox Training in Bangla – কবো টুলবক্স প্রশিক্ষণ

উপসংহার

KoBoToolbox-এর XLSForm ডিজাইনে Regex ব্যবহারের মাধ্যমে আপনি ফর্মে ইনপুট যাচাইয়ের একটি কার্যকর পদ্ধতি প্রয়োগ করতে পারেন। এটি ব্যবহারকারীর ভুল ইনপুট কমিয়ে আনে এবং ডেটার গুণগত মান বৃদ্ধি করে। আপনি যদি আরও কাস্টম নিয়ম তৈরি করতে চান, তাহলে রেগুলার এক্সপ্রেশনের উন্নত প্যাটার্ন শিখে সেগুলো এপ্লাই করতে পারে।

Leave a Reply

Your email address will not be published. Required fields are marked *