মূল কন্টেন্টে যান
মডিউল 8 · 1-এর পাঠ 4কোর্সে 29/32~12 min
মডিউল পাঠ (1/4)

একটি ইমেল যাচাই করা হচ্ছে

একটি ইমেল "সঠিকভাবে" যাচাই করা একটি অনেক কঠিন সমস্যা যা মনে হয়: RFC 5322 একটি দানব। অনুশীলনে আমরা একটি যথেষ্ট ভালো প্যাটার্ন বেছে নিই সাধারণ ক্ষেত্রে গ্রহণ করে এবং স্পষ্টতই ভুলগুলি প্রত্যাখ্যান করে।

Code
Pattern: ^[\w.+-]+@[\w-]+(?:\.[\w-]+)+$
  • [\w.+-]+ -- স্থানীয় অংশ: অক্ষর, অঙ্ক, _, ., +, -।
  • @ -- বিভাজক।
  • [\w-]+(?:\.[\w-]+)+ -- ডোমেন + অন্তত একটি TLD . দ্বারা পৃথক করা হয়েছে।

এটা কি গ্রহণ করে: mario.rossi@example.com, foo+bar@sub.example.co.uk, user_123@test-domain.io

এটা কি প্রত্যাখ্যান করে: mario@, @example.com, mario@example (কোনও TLD নয়), স্পেস।

ট্রেড-অফ

উপরের প্যাটার্নটি গ্রহণ করে না:

  • উদ্ধৃত স্ট্রিং "strange (things)"@example.com (RFC তাদের অনুমতি দেয়)।
  • ইউনিকোড অক্ষর সহ ডোমেন (\u00fcber@m\u00fcnchen.de)।
  • খুব দীর্ঘ TLD যেগুলো \w পাস করে না (যেমন আন্তর্জাতিকীকৃত)।

আপনার যদি সেগুলি প্রয়োজন হয়, ক্লাসকে \p{L}-এ u পতাকা সহ প্রশস্ত করুন, অথবা একজনকে অর্পণ করুন বিশেষ গ্রন্থাগার।

ইমেল যাচাইকরণের জন্য ট্রেড-অফ এবং সর্বোত্তম অনুশীলন

কোন regex গ্যারান্টি দিতে পারে না যে একটি ইমেল ঠিকানা আসলে বিদ্যমান। অত্যধিক জটিল নিদর্শন কর্মক্ষমতা হ্রাস করে এবং অস্বাভাবিক কিন্তু বৈধ ডোমেন বাদ দেয়। স্পষ্ট টাইপো প্রত্যাখ্যান করতে এবং একটি যাচাইকরণ কোড পাঠাতে একটি সহজ বৈধকরণ প্যাটার্ন ব্যবহার করা ভাল।

চেষ্টা করে দেখুন

ব্যায়াম#regex.m8.l1.e1
প্রচেষ্টা: 0লোড হচ্ছে...

পাঠ্যের প্রতিটি ইমেল চিনুন। একটি সাধারণ প্যাটার্ন ব্যবহার করুন: @ এর আগে অক্ষর/অঙ্ক/বিন্দু, অন্তত একটি বিন্দু সহ ডোমেন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

একাধিক TLD গ্রহণ করতে স্থানীয় অংশকে [\\w.+-]+ এবং ডোমেনটিকে [\\w-]+\\.[\\w.-]+ এ প্রসারিত করুন।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম পর্যালোচনা করুন

ব্যায়াম#regex.m8.l1.e2
প্রচেষ্টা: 0লোড হচ্ছে...

একটি নামযুক্ত গ্রুপ `dominio` হিসাবে প্রতিটি ইমেলের ডোমেন (@ এর পরে অংশ) ক্যাপচার করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

একটি নামযুক্ত গ্রুপে ডোমেন অংশটি মোড়ানো: (?<dominio>[\\w.-]+)।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

অতিরিক্ত চ্যালেঞ্জ

ব্যায়াম#regex.m8.l1.e3
প্রচেষ্টা: 0লোড হচ্ছে...

Find the domain part of an email (everything after `@`), excluding the `@` sign using lookbehind.

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

ডোমেন অক্ষর শ্রেণীর সামনে একটি ইতিবাচক চেহারার পিছনে (?<=@) ব্যবহার করুন।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ