Энгийн илэрхийлэл бүхий имэйл хаягийг хэрхэн баталгаажуулах вэ (Regex). HTML5, PHP, C#, Python, Java кодын жишээ.
Өнөө үед бараг бүх програмчлалын хэл ердийн хэллэгийг дэмждэг. Зарим хөгжүүлэгчид таалагдахгүй байгаа ч серверийн нөөц багатай, баталгаажуулалт зэрэг функцийг маш хурдан гүйцэтгэдэг тул тэдгээр нь үнэхээр шилдэг туршлага юм. Имэйл хаягууд нь зөв форматтай эсэхийг шалгахын тулд хялбархан шалгах боломжтой төгс жишээ юм.
Баталгаажуулалт нь тийм биш гэдгийг санаарай шалгах. Баталгаажуулалт гэдэг нь дамжуулсан өгөгдөл нь зохих ёсоор хийгдсэн стандарт форматыг дагаж мөрддөг гэсэн үг юм. Баталгаажуулсны дараа алдаж болох имэйл хаягуудын талаархи зарим сонирхолтой зүйлс.
Имэйл хаяг гэж юу вэ?
Интернет мессежийн форматаар тодорхойлсон имэйл хаяг (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
Үүнийг нэрийн хуудас дээр суулгаж үзээрэй! Хачирхалтай нь ихэнх имэйл хаягийн талбарууд вэб дээрх 100 тэмдэгтээр хязгаарлагддаг... энэ нь техникийн хувьд буруу юм. Имэйл хаягийг баталгаажуулахад ашигладаг бусад ердийн илэрхийллүүдийн зарим нь .com гэх мэт 3 оронтой дээд түвшний домайныг хайдаг; Гэсэн хэдий ч, уртад ямар ч хязгаарлалт байхгүй дээд түвшний домэйнууд (жишээ нь. Martech Zone 4 оронтой - .бүс).
Тогтмол илэрхийлэл
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' />
Гэсэн хэдий ч таны вэб аппликейшн таны серверт нэвтрэх болон илгээх үед хөтөч дээрх имэйл хаягийг баталгаажуулахыг хүсэх тохиолдол байдаг.
PHP дээр зөв имэйл хаягийн хувьд Regex
Үүнийг цөөхөн хүн ойлгодог ч PHP одоо RFC стандартыг өөртөө суулгасан байдаг шүүлтүүрийн баталгаажуулалтын функц.
if(filter_var("name@domain.com", FILTER_VALIDATE_EMAIL)) {
// Valid
}
else {
// Not Valid
}
C# хэл дээрх зөв имэйл хаягийн хувьд Regex
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.");
}
Java хэл дээрх зөв имэйл хаягийн хувьд Regex
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.");
}
Python дахь зөв имэйл хаягийн хувьд Regex
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.")
JavaScript дахь зөв имэйл хаягийн хувьд Regex
Та имэйл хаягийн бүтцийг шалгах хэт нарийн төвөгтэй стандарттай байх шаардлагагүй. Энд 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.