E-poçt ünvanını müntəzəm ifadələrlə (Regex) necə təsdiqləmək olar. Nümunə HTML5, PHP, C#, Python və Java Kodu.
Demək olar ki, hər bir proqramlaşdırma dili bu gün müntəzəm ifadələri dəstəkləyir. Bəzi tərtibatçılar onları bəyənməsələr də, onlar həqiqətən ən yaxşı təcrübədir, çünki onlar adətən doğrulama kimi funksiyaları daha az server resursu ilə çox sürətli yerinə yetirirlər. E-poçt ünvanları mükəmməl bir nümunədir... düzgün formatlaşdırıldıqlarını yoxlamaq üçün asanlıqla yoxlanıla bilər.
Nəzərə alın ki, doğrulama deyil yoxlama. Doğrulama sadəcə olaraq ötürülən məlumatların düzgün qurulmuş standart formata uyğun olması deməkdir. Doğrulama zamanı qaçırıla bilən e-poçt ünvanları haqqında bəzi maraqlı şeylər.
E-poçt ünvanı nədir?
İnternet Mesaj Formatında müəyyən edilən e-poçt ünvanı (RFC 5322), iki əsas hissədən ibarətdir: yerli hissə və domen hissəsi. Yerli hissədən əvvəl gəlir @
simvolu və sonra domen hissəsi gəlir. Budur bir e-poçt ünvanı nümunəsi: example@example.com
, Harada example
yerli hissəsidir və example.com
domen hissəsidir.
- Yerli – E-poçt ünvanının yerli hissəsində hərf-rəqəm simvolları, nöqtələr, defislər, üstəgəl işarələr və alt xətt birləşmələri ola bilər. O, adətən serverdə xüsusi poçt qutusu və ya hesabı müəyyən etmək üçün istifadə olunur.
- Domain – E-poçt ünvanının domen hissəsi domen adı və onun yüksək səviyyəli domenindən ibarətdir (TLD). Domen adı e-poçt hesabını saxlayan serveri müəyyən edən simvollar silsiləsidir. TLD domen adına cavabdeh olan qurumun növünü, məsələn, ölkə kodunu (məs
.uk
) və ya ümumi yüksək səviyyəli domen (məs.com
,.org
).
Bu, e-poçt ünvanının əsas strukturu olsa da, etibarlı bir e-poçt ünvanını təşkil edən qaydalar mürəkkəbdir.
E-poçt ünvanı nə qədər uzun ola bilər?
Bunu tapmaq üçün bu gün bir az qazma işləri görməli idim, amma bir e-poçt adresinin etibarlı uzunluğunun nə olduğunu bilirdinmi? Əslində hissələrə ayrılıb ... Local@Domain.com.
- Lokal 1 ilə 64 simvol arasında ola bilər.
- Domen 1 - 255 simvol ola bilər.
Bu o deməkdir ki, texniki cəhətdən bu etibarlı e-poçt ünvanı ola bilər:
loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc@loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPhasellusatin
ciduntaturpisaduis.com
Bunu vizit kartına yerləşdirməyə çalışın! Təəssüf ki, əksər e-poçt ünvanı sahələri internetdə 100 simvolla məhdudlaşır... bu, texniki cəhətdən yanlışdır. E-poçt ünvanlarını təsdiqləmək üçün istifadə edilən bəzi digər müntəzəm ifadələr də .com kimi 3 rəqəmli yüksək səviyyəli domeni axtarır; lakin uzunluğunda heç bir məhdudiyyət yoxdur yüksək səviyyəli domenlər (məsələn. Martech Zone 4 rəqəmə malikdir – .zon).
Adi ifadələr
RegEx proqram strukturuna görə e-poçt ünvanını sınamaq üçün mükəmməl bir üsuldur. Adi ifadələr proqramlaşdırma dillərində və mətn redaktorlarında geniş istifadə olunur və çox vaxt mətn emalı kitabxanalarına və ya çərçivələrə inteqrasiya olunur. Onlar digərləri arasında Python, Java, C# və JavaScript daxil olmaqla bir çox proqramlaşdırma dilləri tərəfindən dəstəklənir.
Elektron poçt ünvanının standartlaşdırılması təsəvvür etdiyinizdən qat-qat mürəkkəbdir. Standarta yazıldığında, burada e-poçt ünvanı üçün əsl müntəzəm ifadə, kreditdir 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])?
Bu müntəzəm ifadə nümunəsi istifadəçi adındakı hərf-rəqəm simvolları, nöqtələr, defislər, üstəgəl işarələr və alt xətt daxil olmaqla, e-poçt ünvanının əsas formatına uyğun gəlir. @
simvolu, ardınca domen adı. Qeyd etmək vacibdir ki, bu nümunə yalnız e-poçt ünvanının formatını yoxlayacaq, faktiki yox varlıq e-poçt ünvanından.
HTML5 E-poçt Struktur Təsdiqini ehtiva edir
E-poçtun standarta uyğun olaraq etibarlı olmasını təmin etməyin ən asan yolu HTML5 e-poçt giriş sahəsindən istifadə etməkdir:
<input type='email' name='email' placeholder='name@domain.com' />
Bəzi vaxtlar olur ki, veb tətbiqiniz hələ də daxil olduqda və serverinizə təqdim edildikdə e-poçt ünvanını brauzerdə təsdiqləmək istəyir.
PHP-də düzgün e-poçt ünvanı üçün Regex
Bunu az adam başa düşür, lakin PHP indi RFC standartını özündə birləşdirib filtr yoxlama funksiyası.
if(filter_var("name@domain.com", FILTER_VALIDATE_EMAIL)) {
// Valid
}
else {
// Not Valid
}
C#-da düzgün e-poçt ünvanı üçün Regex
Budur C#-da e-poçt ünvanının əsas təsdiqi
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);
}
}
Bu metodun praktik istifadəsi:
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-da düzgün e-poçt ünvanı üçün Regex
Java-da e-poçt ünvanının əsas yoxlanışı buradadır
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();
}
}
Bu metodun praktik istifadəsi:
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-da düzgün e-poçt ünvanı üçün Regex
Budur Python-da e-poçt ünvanının əsas təsdiqi:
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
Bu metodun praktik istifadəsi:
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-də düzgün e-poçt ünvanı üçün Regex
E-poçt ünvanının strukturunu yoxlamaq üçün həddindən artıq mürəkkəb standarta sahib olmanız lazım deyil. Budur JavaScript-dən istifadə edən sadə vasitə.
function validateEmail(email)
{
var re = /\\S+@\\S+/;
return re.test(email);
}
Əlbəttə ki, bu, RFC standartına uyğun deyil, ona görə də etibarlı olmasını təmin etmək üçün məlumatların hər bir hissəsini təsdiqləmək istəyə bilərsiniz. Bu müntəzəm ifadə oradakı e-poçt ünvanlarının təxminən 99.9%-nə uyğun olacaq. Bu, tam standartlara uyğun deyil, lakin faktiki olaraq istənilən layihə üçün faydalıdır.
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);
}
Bu nümunələrdən bəziləri üçün kredit gedir HTML.form.bələdçi.