How to validate E-mail pattern in python
Credit Img : Fireship.io
Date | 12-01-2021 |
---|---|
Author | Thanakorn P. |
วันนี้จะมาทดลองทำ input validation โดยใช้ regular expression ผ่าน library ของ python ตัวหนึ่งที่ชื่อว่า re
การใช้งาน re module จะเริ่มจากการกำหนด pattern ของ E-mail ในรูปแบบ regular expression ซึ่งโดยปกติแล้ว E-mail pattern จะมีรูปแบบคือ [e-mail user]@[domain name]
จากนั้นใช้งาน function re.search() ทำการหา pattern ที่เรากำหนดไว้ ตรวจหา input ที่รับเข้ามา ว่าตรงตาม pattern ที่กำหนดไว้หรือไม่ ตาม code ตัวอย่าง ด้านล่าง
Sample code
import re
# prepare e-mail pattern
email_regex = '[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w'
def check_email_pattern(email):
if re.search(email_regex, email):
print('E-mail pattern is valid.')
else:
print('E-mail pattern is not valid.')
email1 = 'nongkon.github.io'
check_email_pattern(email1) # check e-mail pattern in email1
email2 = 'abcd1234@test.com'
check_email_pattern(email2)
email3 = 'abcd1234@test.in.th'
check_email_pattern(email3)
injection = "' OR 1 --"
check_email_pattern(injection)
Result
E-mail pattern is invalid.
E-mail pattern is valid.
E-mail pattern is valid.
E-mail pattern is invalid.
จาก Result จะเห็นได้ว่าการใช้ Regular expression นั้นมีประโยชน์หลายด้าน ไม่ว่าจะเป็นในด้านการนำ input ไปใช้งาน ทำให้ได้ input ที่ตรงตามความต้องการของโปรแกรมมากขึ้น ช่วยป้อง input ที่มีความมุ่งร้ายต่อโปรแกรม อธิเช่น การทำ Injection ต่างๆ
ref : https://www.geeksforgeeks.org/check-if-email-address-valid-or-not-in-python/