ماڈیول اسباق (1/4)
ای میل کی توثیق کرنا
ای میل کو "درست طریقے سے" کی توثیق کرنا اس سے کہیں زیادہ مشکل مسئلہ ہے جو لگتا ہے: RFC 5322 ایک عفریت ہے۔ عملی طور پر ہم ایک کافی اچھا پیٹرن چنتے ہیں۔ عام معاملات کو قبول کرتا ہے اور واضح طور پر غلط کو مسترد کرتا ہے۔
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)۔ - بہت طویل TLDs جو پاس نہیں ہوتے ہیں
\w(مثال کے طور پر انٹرنیشنلائزڈ)۔
اگر آپ کو ان کی ضرورت ہو تو، کلاس کو \p{L} تک u پرچم کے ساتھ وسیع کریں، یا کسی کو تفویض کریں
خصوصی لائبریری.
ای میل کی توثیق کے لیے ٹریڈ آف اور بہترین طریقے
کوئی ریجیکس اس بات کی ضمانت نہیں دے سکتا کہ ای میل ایڈریس اصل میں موجود ہے۔ حد سے زیادہ پیچیدہ پیٹرن کارکردگی کو کم کرتے ہیں اور غیر معمولی لیکن درست ڈومینز کو خارج کر دیتے ہیں۔ واضح ٹائپ کی غلطیوں کو مسترد کرنے اور تصدیقی کوڈ بھیجنے کے لیے ایک سادہ توثیق کا نمونہ استعمال کرنا بہتر ہے۔
اسے آزمائیں
متن میں ہر ای میل کو پہچانیں۔ ایک سادہ پیٹرن کا استعمال کریں: @ سے پہلے حروف/ہندسے/نقطے، کم از کم ایک ڈاٹ کے ساتھ ڈومین۔
اشارہ دکھائیں۔
متعدد TLDs کو قبول کرنے کے لیے مقامی حصے کو [\\w.+-]+ اور ڈومین کو [\\w-]+\\[\\w.-]+ تک وسیع کریں۔
3 کوششوں کے بعد حل دستیاب ہے۔
ورزش کا جائزہ لیں۔
ہر ای میل کے ڈومین (@ کے بعد کا حصہ) کو بطور نامزد گروپ `ڈومینیو` کیپچر کریں۔
اشارہ دکھائیں۔
ڈومین کے حصے کو ایک نامزد گروپ میں لپیٹیں: (?<dominio>[\\w.-]+)۔
3 کوششوں کے بعد حل دستیاب ہے۔
اضافی چیلنج
Find the domain part of an email (everything after `@`), excluding the `@` sign using lookbehind.
اشارہ دکھائیں۔
ڈومین کریکٹر کلاس کے سامنے ایک مثبت نظر (?<=@) کا استعمال کریں۔
3 کوششوں کے بعد حل دستیاب ہے۔