Ще преминем направо към краткия отговор, а след това ще се заемем с дългото обяснение.
Съвсем просто – не.
Чувам как разработчиците и защитниците на дявола поставят под съмнение нашето грубо отричане на валидирането на имейли с регекс, което предизвиква допълнителен въпрос – защо изобщо съществува.
Няма да отричаме, че това може да бъде полезен инструмент, и със сигурност е хитроумно малко приспособление, което не позволява на потребителите да добавят какъвто и да е текст във формуляр или друг изпълним носител. В един момент имейл регексът имаше своята роля в начина, по който събираме данни за имейли.
Но сега? В съответствие с настоящите технологии и стандарти?
Ние казваме, че тя е имала своя ден.
Ако искате да сте сигурни, че получавате чисти имейл адреси, които няма да повлияят на маркетинга на имейли, на процента на отказите, на резултатите от доставянето и на всички неща, които знаете, че са ви необходими, за да поддържате високи показатели и конверсии, тогава regex не е начинът.
Какво е regex за валидиране на имейл?
Regex е съкращение от регулярни изрази; това е термин, използван в различни езици за кодиране. Regex, или регулярни изрази, се отнася до кодирани текстови низове, предназначени да съвпадат с шаблони, открити в други низове.
Те могат да бъдат доста удобни, когато потребителят трябва да съпостави низ от символи с определен тип шаблон, за да провери дали предоставената информация е вярна. Обърнете внимание на телефонни номера, пощенски кодове, дати и, да, голямата тема, която ни интересува – имейл адреси.
С помощта на прост шаблон може да се съпостави точен низ с набор от правила. Когато простите шаблони станат по-сложни, regex става по-малко ефективен и е по-вероятно да даде лоши резултати.
Досега звучи добре – така че какъв е проблемът с валидирането на имейл с регекс?
Колкото и удобен инструмент да е regex, той не покрива проверките, от които се нуждаете. Разгледайте тези:
[email protected]
[email protected]
[email protected]
[email protected]
Да кажем, че забележите някое от горните попълнения в списъка си с имейли; ще ги отбележите веднага (или би трябвало!). Не бихте повярвали, че някое от тях е валидно вписване от истински хора, които проявяват интерес към вашия продукт и услуга.
Все пак валидирането на имейли с регекс би било възможно. Тя би ги пропуснала всички.
Защо? Защото тези очевидно фалшиви адреси продължават да следват моделите, които правилата на услугата потвърждават.
Сега вече не изглежда толкова умно, нали?
Твърде ограничаващ е
Въпреки че предишните примери ни изглеждат толкова очевидно фалшиви, някои формати на имейли включват много повече специални символи, отколкото сме свикнали да виждаме.
В най-простия си вид имейл адресът е в следния формат:
потребителско име@домейн
Имейл адресите се състоят от три части:
- Местната част – обикновено потребителско име или длъжностна роля.
- Символът @
- Домейнът, включително валиден TLD (Top Level Domain)
Ако това беше всичко, което кодът трябваше да търси, тогава една типична regex проверка в javascript щеше да предотврати попадането на много лоши контакти в нашите списъци.
Обикновено нашите имейл адреси могат да съдържат следните символи:
- Цифри: 0 до 9
- Малки и главни букви: от a до z и от A до Z
- Допълнителни специални символи: !#$%&’*+-/=?^_`{|}~
- Знакът за точка [.]: Но не като първи или последен символ, нито като последователно използван
Ако някой кандидатства за вашия списък с имейли с някой от тези специални знаци или с редица от тях, повечето от нас биха се запитали дали нещо не е наред и биха сгрешили – всички те са разрешени съгласно настоящата конвенция.
Regex не проверява нищо друго освен синтаксиса
Разработчиците може да се интересуват само от получаването на валидно изглеждащи адреси чрез формуляр, но ние не сме. Ние трябва да знаем:
- Съществува ли домейнът?
- Има ли MX запис, който да доказва, че домейнът има пощенски сървър?
- Има ли имейл адресът работещ имейл акаунт?
Всеки от тези въпроси, който получи отговор „не“, ще получи твърдо „не“ и от нас като търговци. Regex не проверява нищо от това – само специален инструмент за валидиране на имейли ще открие такива червени знамена.
Тя не разпознава временни и еднократни адреси
Като специалисти по маркетинг на имейли сме наясно, че много потребители създават фалшиви временни акаунти, за да се възползват от оферта, промоция или друга ситуация. Това е лесен начин да избегнат да претрупат съществуващите си имейл акаунти или да предоставят информация за себе си, която не искат.
Лесно е да настроите временен или еднократен имейл адрес като еднократно решение. Тези адреси често изчезват в рамките на 10 или 15 минути след създаването им, което ги прави изключително подходящи за целта.
Регексът не проверява за тях. Временните имейл адреси и тези за еднократна употреба преминават всички тестове за валидиране с regex.
Как бихте настроили javascript за имейл регекс?
Ако сте опитен програмист, вероятно няма да се нуждаете от нашите основни познания по темата, за да ви кажем как да го направите, но за тези от вас, които имат известен опит в кодирането, това трябва да изглежда по следния начин:
функция ValidateEmail(inputText)
{
var mailformat = [a-z0-9!#$%&’*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&’*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
if(inputText.value.match(mailformat))
{
alert(„Това не е валиден имейл адрес“);
да се върне false;
}
}
Частта, която извършва тежката работа, е var mailformat линия. Изпълнението и символите в този дълъг ред код определят какво е разрешено и какво не.
Можете да забележите простите неща: A , A , 0-9 , а след това специалните символи в първия, местен раздел. В +@ след това определя локалния разделител и разделителя на домейна. След @ има още един набор от инструкции за това какво е допустимо за секцията на домейна.
Ако искате да получите по-задълбочена информация за това какво е необходимо, за да реализирате regex валидатор, посетете abstract. Те имат наистина добро ръководство за това какво точно е необходимо и са експерти, когато става въпрос за всички видове допълнения и включвания на API.
Ако една работа си струва да бъде свършена, тя си струва да бъде свършена добре, така че потвърдете списъците си по най-добрия възможен начин.
Има само един начин да се уверите, че списъците ви с имейли са в първокласно състояние, и това е да използвате специален инструмент за валидиране на имейли, като например Bouncer .
Валидирането на регекса може да е причина за включването на фалшиви имейл адреси в списъците ви с имейли, както и за блокирането на валидни такива. Когато става въпрос за добавяне на метод за удостоверяване към вашите онлайн формуляри или методи за събиране на данни, бихме предложили други, по-стабилни форми на валидиране.
В крайна сметка използването на списъци с имейли чрез платформа като Bouncer е най-добрият начин да поддържате списъците си чисти и здрави, да намалявате броя на отказите, да постигате висока степен на доставяне и да поддържате рейтинга на изпращача в отлична форма.
Често задавани въпроси за регекс на имейл съобщението
Какъв е простият регекс за валидиране на имейл?
Обикновеният regex (регулярен израз) за валидиране на имейли е последователност от символи, която определя модел за търсене на имейл адреси. Той може да се използва за проверка дали даден низ отговаря на стандартния формат на имейл адрес. Важно е обаче да се отбележи, че простият regex може да не улови всички невалидни имейл адреси и да позволи преминаването на някои нестандартни формати на имейли.
Как имейл регексът помага за филтриране на невалидни имейл адреси?
Email regex се използва за сравняване на входния низ (имейл адреса, въведен от потребителя) с определен формат. Ако имейл адресът не съответства на този формат, той се счита за невалиден. Това може да помогне за предотвратяване на печатни грешки, осигуряване на съгласуваност на данните и защита срещу определени видове атаки с инжектиране.
Какво представлява символът бял интервал в контекста на имейл regex?
Белият символ в имейл регекса се отнася за всеки символ, който се използва за представяне на празни пространства, като интервали, табулации или прекъсвания на редове. В контекста на имейл адресите белите символи обикновено не са разрешени и наличието им би направило имейл адреса невалиден.
Какво е сложен имейл регекс?
Сложният имейл регекс е по-подробен и точен регулярен израз, използван за валидиране на имейли. Той може да отчита различни аспекти на имейл адресите, като имена на домейни, нелатински символи и специфични правила за това къде могат да се появяват определени символи. Въпреки че осигурява по-задълбочено валидиране, той може да бъде и по-труден за изпълнение и поддръжка.
Как имейл регексът се справя с нелатински символи и Unicode?
Работата с нелатински символи и Unicode в имейл regex може да бъде сложна. Някои системи за електронна поща позволяват използването на Unicode или нелатински имейл адреси, но те не се поддържат универсално. Един сложен имейл regex може да включва класове от символи за съвпадение с нелатински символи, но е важно да разбирате специфичните изисквания и ограничения на имейл системата, с която работите.
Каква е ролята на класовете символи в имейл regex?
Класовете от символи в имейл regex дефинират набор от символи, които могат да съвпадат с всеки отделен символ във входния низ. Например класът символи [a-z] съвпада с всяка малка английска буква. Класовете символи могат да се използват за определяне на валидни символи за различни части на имейл адрес.
Какви са ограниченията на имейл регекса за валидиране на имейли?
Въпреки че имейл регексът може да улови много често срещани грешки в имейл адресите, той не е пълен метод за валидиране. Някои невалидни адреси все пак могат да преминат проверката с regex, а някои валидни адреси може да не успеят, особено ако използват по-рядко срещани формати или символи. За цялостно валидиране на имейли често се препоръчва да се използват услуги за валидиране на имейли или да се изпрати имейл за потвърждение на въведения адрес.