שיעורי מודול (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 מאפשר להם). - דומיינים עם תווי Unicode (
\u00fcber@m\u00fcnchen.de). - TLDs ארוכים מאוד שאינם עוברים את
\w(למשל, בינלאומיים).
אם אתה צריך אותם, הרחב את הכיתה ל-\p{L} עם הדגל u, או האצל ל-
ספרייה מתמחה.
פשרות ושיטות עבודה מומלצות לאימות דוא"ל
שום ביטוי רגולרי לא יכול להבטיח שכתובת דוא"ל אכן קיימת. דפוסים מורכבים מדי פוגעים בביצועים ואינם כוללים דומיינים חריגים אך תקפים. עדיף להשתמש בדפוס אימות פשוט כדי לדחות שגיאות הקלדה ברורות ולשלוח קוד אימות.
נסה את זה
מזהה כל מייל בטקסט. השתמש בתבנית פשוטה: אותיות/ספרות/נקודות לפני ה-@, תחום עם נקודה אחת לפחות.
הצג רמז
הרחב את החלק המקומי ל-[\\w.+-]+ ואת הדומיין ל-[\\w-]+\\.[\\w.-]+ כדי לקבל מספר TLDs.
הפתרון זמין לאחר 3 ניסיונות
סקירת התרגיל
לכוד את הדומיין (החלק שאחרי @) של כל אימייל כקבוצה בשם `dominio`.
הצג רמז
עטפו את החלק של הדומיין בקבוצה עם שם: (?<dominio>[\\w.-]+).
הפתרון זמין לאחר 3 ניסיונות
אתגר נוסף
Find the domain part of an email (everything after `@`), excluding the `@` sign using lookbehind.
הצג רמז
השתמש במבט חיובי מאחור (?<=@) לפני מחלקת תו התחום.
הפתרון זמין לאחר 3 ניסיונות