ວິທີການກວດສອບທີ່ຢູ່ອີເມວດ້ວຍການສະແດງອອກປົກກະຕິ (Regex). ຕົວຢ່າງ HTML5, PHP, C#, Python, ແລະ Java Code.
ເກືອບທຸກພາສາການຂຽນໂປຼແກຼມສະຫນັບສະຫນູນການສະແດງອອກເປັນປົກກະຕິໃນປັດຈຸບັນ. ໃນຂະນະທີ່ນັກພັດທະນາບາງຄົນບໍ່ມັກພວກມັນ, ພວກມັນເປັນການປະຕິບັດທີ່ດີທີ່ສຸດຍ້ອນວ່າພວກເຂົາມັກຈະປະຕິບັດຫນ້າທີ່ເຊັ່ນການກວດສອບໄວທີ່ສຸດກັບຊັບພະຍາກອນຂອງເຄື່ອງແມ່ຂ່າຍຫນ້ອຍ. ທີ່ຢູ່ອີເມວເປັນຕົວຢ່າງທີ່ດີເລີດ… ບ່ອນທີ່ພວກເຂົາເຈົ້າສາມາດໄດ້ຮັບການກວດສອບໄດ້ຢ່າງງ່າຍດາຍເພື່ອໃຫ້ແນ່ໃຈວ່າພວກເຂົາເຈົ້າກໍາລັງຮູບແບບທີ່ເຫມາະສົມ.
ຈົ່ງຈື່ໄວ້ວ່າການກວດສອບບໍ່ແມ່ນ ການຢັ້ງຢືນ. ການກວດສອບພຽງແຕ່ຫມາຍຄວາມວ່າຂໍ້ມູນທີ່ຜ່ານໄປປະຕິບັດຕາມຮູບແບບມາດຕະຖານທີ່ຖືກສ້າງຂຶ້ນຢ່າງຖືກຕ້ອງ. ບາງສິ່ງທີ່ຫນ້າສົນໃຈກ່ຽວກັບທີ່ຢູ່ອີເມວທີ່ສາມາດພາດໄດ້ເມື່ອມີການກວດສອບຄວາມຖືກຕ້ອງ.
ທີ່ຢູ່ອີເມວແມ່ນຫຍັງ?
ທີ່ຢູ່ອີເມວ, ຕາມທີ່ກໍານົດໂດຍຮູບແບບຂໍ້ຄວາມອິນເຕີເນັດ (RFC 5322), ແມ່ນປະກອບດ້ວຍສອງພາກສ່ວນຕົ້ນຕໍ: ສ່ວນທ້ອງຖິ່ນແລະພາກສ່ວນໂດເມນ. ສ່ວນທ້ອງຖິ່ນມາກ່ອນ @
ສັນຍາລັກແລະສ່ວນໂດເມນມາຫຼັງຈາກ. ນີ້ແມ່ນຕົວຢ່າງຂອງທີ່ຢູ່ອີເມວ: example@example.com
, ບ່ອນທີ່ example
ແມ່ນພາກສ່ວນທ້ອງຖິ່ນແລະ example.com
ແມ່ນສ່ວນໂດເມນ.
- ທ້ອງຖິ່ນ – ພາກສ່ວນທ້ອງຖິ່ນຂອງທີ່ຢູ່ອີເມວອາດມີຕົວອັກສອນທີ່ເປັນຕົວເລກ, ຕົວເລກ, ເຄື່ອງໝາຍຈ້ຳເມັດ, ເຄື່ອງໝາຍບວກ, ແລະເຄື່ອງໝາຍຂີດກ້ອງ. ໂດຍປົກກະຕິມັນຖືກນໍາໃຊ້ເພື່ອກໍານົດກ່ອງຈົດຫມາຍຫຼືບັນຊີສະເພາະຢູ່ໃນເຄື່ອງແມ່ຂ່າຍ.
- ໂດເມນ – ສ່ວນໂດເມນຂອງທີ່ຢູ່ອີເມວປະກອບດ້ວຍຊື່ໂດເມນ ແລະໂດເມນລະດັບສູງສຸດຂອງມັນ (TLD). ຊື່ໂດເມນແມ່ນສາຍຂອງຕົວອັກສອນທີ່ກໍານົດເຄື່ອງແມ່ຂ່າຍທີ່ເປັນເຈົ້າພາບບັນຊີອີເມວ. TLD ກໍານົດປະເພດຂອງຫນ່ວຍງານທີ່ຮັບຜິດຊອບສໍາລັບຊື່ໂດເມນ, ເຊັ່ນ: ລະຫັດປະເທດ (ຕົວຢ່າງ
.uk
) ຫຼືໂດເມນລະດັບສູງສຸດທົ່ວໄປ (ເຊັ່ນ.com
,.org
).
ໃນຂະນະທີ່ນີ້ແມ່ນໂຄງສ້າງພື້ນຖານຂອງທີ່ຢູ່ອີເມວ, ກົດລະບຽບສໍາລັບສິ່ງທີ່ປະກອບເປັນທີ່ຢູ່ອີເມວທີ່ຖືກຕ້ອງແມ່ນສັບສົນ.
ທີ່ຢູ່ອີເມວສາມາດຢູ່ໄດ້ດົນປານໃດ?
ຂ້ອຍຕ້ອງໄດ້ເຮັດການຂຸດຂຸມໃນມື້ນີ້ເພື່ອຊອກຫາມັນ, ແຕ່ເຈົ້າຮູ້ບໍ່ວ່າຄວາມຍາວຂອງທີ່ຢູ່ອີເມວແມ່ນຫຍັງ? ມັນຖືກແຍກອອກເປັນພາກສ່ວນ… Local@Domain.com.
- ທ້ອງຖິ່ນສາມາດເປັນ 1 ຫາ 64 ຕົວອັກສອນ.
- ໂດເມນສາມາດຕັ້ງແຕ່ 1 ເຖິງ 255 ໂຕອັກສອນ.
ນັ້ນຫມາຍຄວາມວ່າ - ທາງດ້ານເຕັກນິກ - ນີ້ອາດຈະເປັນທີ່ຢູ່ອີເມວທີ່ຖືກຕ້ອງ:
loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc@loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPhasellusatin
ciduntaturpisaduis.com
ລອງໃສ່ມັນໃສ່ນາມບັດ! Ironically, ຊ່ອງຂໍ້ມູນທີ່ຢູ່ອີເມວສ່ວນໃຫຍ່ຖືກຈໍາກັດພຽງແຕ່ 100 ຕົວອັກສອນຢູ່ໃນເວັບ ... ເຊິ່ງບໍ່ຖືກຕ້ອງທາງດ້ານເຕັກນິກ. ບາງສ່ວນຂອງການສະແດງອອກປົກກະຕິອື່ນໆທີ່ໃຊ້ໃນການກວດສອບທີ່ຢູ່ອີເມວຍັງຊອກຫາໂດເມນລະດັບສູງສຸດ 3 ຕົວເລກເຊັ່ນ .com; ຢ່າງໃດກໍຕາມ, ບໍ່ມີຂໍ້ຈໍາກັດກ່ຽວກັບຄວາມຍາວຂອງ ໂດເມນລະດັບສູງສຸດ (ຕົວຢ່າງ. Martech Zone ມີ 4 ຕົວເລກ – .zone).
ສຳ ນວນປົກກະຕິ
regex ເປັນວິທີການທີ່ສົມບູນແບບສໍາລັບການທົດສອບທີ່ຢູ່ອີເມວເນື່ອງຈາກໂຄງສ້າງຂອງໂປລແກລມຂອງມັນ. ການສະແດງອອກປົກກະຕິຖືກນໍາໃຊ້ຢ່າງກວ້າງຂວາງໃນພາສາການຂຽນໂປລແກລມແລະຕົວແກ້ໄຂຂໍ້ຄວາມແລະມັກຈະຖືກລວມເຂົ້າໃນຫ້ອງສະຫມຸດຫຼືກອບການປຸງແຕ່ງຂໍ້ຄວາມ. ພວກເຂົາເຈົ້າໄດ້ຮັບການສະຫນັບສະຫນູນໂດຍພາສາການຂຽນໂປລແກລມຫຼາຍ, ລວມທັງ Python, Java, C#, ແລະ JavaScript, ແລະອື່ນໆ.
ມາດຕະຖານທີ່ຢູ່ອີເມລ໌ແມ່ນສັບສົນຫຼາຍກ່ວາທີ່ທ່ານຮັບຮູ້. ໃນເວລາທີ່ລາຍລັກອັກສອນມາດຕະຖານ, ນີ້ແມ່ນການສະແດງອອກທີ່ເປັນປົກກະຕິທີ່ແທ້ຈິງສໍາລັບການທີ່ຢູ່ອີເມລ໌, ປ່ອຍສິນເຊື່ອ Regexr:
[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
ຮູບແບບການສະແດງອອກປົກກະຕິນີ້ກົງກັບຮູບແບບພື້ນຖານຂອງທີ່ຢູ່ອີເມວ, ລວມທັງຕົວອັກສອນທີ່ເປັນຕົວເລກ, ຕົວເລກ, ເຄື່ອງໝາຍຈ້ຳເມັດ, ເຄື່ອງໝາຍບວກ, ແລະເຄື່ອງໝາຍຂີດກ້ອງໃນຊື່ຜູ້ໃຊ້, ຕິດຕາມດ້ວຍ @
ສັນຍາລັກ, ຕິດຕາມດ້ວຍຊື່ໂດເມນ. ມັນເປັນສິ່ງສໍາຄັນທີ່ຈະສັງເກດວ່າຮູບແບບນີ້ພຽງແຕ່ຈະກວດເບິ່ງຮູບແບບຂອງທີ່ຢູ່ອີເມວແລະບໍ່ແມ່ນຕົວຈິງ ທີ່ມີຢູ່ແລ້ວ ຂອງທີ່ຢູ່ອີເມວ.
HTML5 ປະກອບມີການກວດສອບໂຄງສ້າງອີເມວ
ວິທີທີ່ງ່າຍທີ່ສຸດເພື່ອຮັບປະກັນວ່າອີເມວຖືກຕ້ອງຕາມມາດຕະຖານແມ່ນໂດຍໃຊ້ຊ່ອງໃສ່ອີເມວ HTML5:
<input type='email' name='email' placeholder='name@domain.com' />
ມີບາງຄັ້ງ, ທີ່ຄໍາຮ້ອງສະຫມັກເວັບໄຊຕ໌ຂອງທ່ານຈະຍັງຕ້ອງການທີ່ຈະກວດສອບທີ່ຢູ່ອີເມວທັງໃນຕົວທ່ອງເວັບໃນເວລາທີ່ເຂົ້າແລະໃນເວລາທີ່ສົ່ງກັບເຄື່ອງແມ່ຂ່າຍຂອງທ່ານ.
Regex ສໍາລັບທີ່ຢູ່ອີເມວທີ່ເຫມາະສົມໃນ PHP
ມີຄົນຈໍານວນຫນ້ອຍທີ່ຮັບຮູ້ມັນ, ແຕ່ PHP ປະຈຸບັນມີມາດຕະຖານ RFC ທີ່ສ້າງຂຶ້ນໃນຂອງມັນ ຟັງຊັນການກວດສອບການກັ່ນຕອງ.
if(filter_var("name@domain.com", FILTER_VALIDATE_EMAIL)) {
// Valid
}
else {
// Not Valid
}
Regex ສໍາລັບທີ່ຢູ່ອີເມວທີ່ຖືກຕ້ອງໃນ C#
ນີ້ແມ່ນການກວດສອບພື້ນຖານຂອງທີ່ຢູ່ອີເມວໃນ C#
using System;
using System.Text.RegularExpressions;
public class EmailValidator
{
public static bool IsValidEmail(string email)
{
string pattern = @"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$";
return Regex.IsMatch(email, pattern);
}
}
ການນໍາໃຊ້ຕົວຈິງຂອງວິທີການນີ້:
string email = "example@example.com";
if (EmailValidator.IsValidEmail(email))
{
Console.WriteLine(email + " is a valid email address.");
}
else
{
Console.WriteLine(email + " is not a valid email address.");
}
Regex ສໍາລັບທີ່ຢູ່ອີເມວທີ່ເຫມາະສົມໃນ Java
ນີ້ແມ່ນການກວດສອບພື້ນຖານຂອງທີ່ຢູ່ອີເມວໃນ Java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class EmailValidator {
private static final Pattern VALID_EMAIL_ADDRESS_REGEX =
Pattern.compile("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,6}$", Pattern.CASE_INSENSITIVE);
public static boolean isValidEmail(String email) {
Matcher matcher = VALID_EMAIL_ADDRESS_REGEX .matcher(email);
return matcher.find();
}
}
ການນໍາໃຊ້ຕົວຈິງຂອງວິທີການນີ້:
String email = "example@example.com";
if (EmailValidator.isValidEmail(email)) {
System.out.println(email + " is a valid email address.");
} else {
System.out.println(email + " is not a valid email address.");
}
Regex ສໍາລັບທີ່ຢູ່ອີເມວທີ່ເຫມາະສົມໃນ Python
ນີ້ແມ່ນການກວດສອບພື້ນຖານຂອງທີ່ຢູ່ອີເມວໃນ Python:
import re
def is_valid_email(email):
pattern = re.compile(r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$')
return True if pattern.match(email) else False
ການນໍາໃຊ້ຕົວຈິງຂອງວິທີການນີ້:
email = "example@example.com"
if is_valid_email(email):
print(f"{email} is a valid email address.")
else:
print(f"{email} is not a valid email address.")
Regex ສໍາລັບທີ່ຢູ່ອີເມວທີ່ເຫມາະສົມໃນ JavaScript
ທ່ານບໍ່ຈໍາເປັນຕ້ອງມີມາດຕະຖານທີ່ສັບສົນເກີນໄປສໍາລັບການກວດສອບໂຄງສ້າງທີ່ຢູ່ອີເມວ. ນີ້ແມ່ນວິທີງ່າຍໆທີ່ໃຊ້ JavaScript.
function validateEmail(email)
{
var re = /\\S+@\\S+/;
return re.test(email);
}
ແນ່ນອນ, ນັ້ນບໍ່ແມ່ນມາດຕະຖານ RFC, ດັ່ງນັ້ນເຈົ້າອາດຈະຕ້ອງການກວດສອບແຕ່ລະພາກສ່ວນຂອງຂໍ້ມູນເພື່ອຮັບປະກັນວ່າມັນຖືກຕ້ອງ. ການສະແດງອອກປົກກະຕິນີ້ຈະປະຕິບັດຕາມປະມານ 99.9% ຂອງທີ່ຢູ່ອີເມວອອກມີ. ມັນບໍ່ແມ່ນມາດຕະຖານຢ່າງເຕັມສ່ວນ, ແຕ່ມັນເປັນປະໂຫຍດສໍາລັບໂຄງການເກືອບທັງຫມົດ.
function validateEmail(email)
{
var re = /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/;
return re.test(email);
}
ສິນເຊື່ອສໍາລັບບາງຕົວຢ່າງເຫຼົ່ານີ້ໄປຫາ HTML.form.guide.