CRM и платформи за данниИмейл маркетинг и автоматизация

Как да потвърдите имейл адрес с регулярни изрази (Regex). Примерен HTML5, PHP, C#, Python и Java код.

На практика всеки език за програмиране поддържа регулярни изрази в днешно време. Въпреки че някои разработчици не ги харесват, те наистина са най-добра практика, тъй като обикновено изпълняват функции като валидиране изключително бързо с по-малко сървърни ресурси. Имейл адресите са перфектен пример... където могат лесно да бъдат проверени, за да се гарантира, че са правилно форматирани.

Имайте предвид, че валидирането не е проверка. Валидирането просто означава, че предаваните данни следват стандартен формат, който е правилно конструиран. Някои интересни неща за имейл адресите, които могат да бъдат пропуснати при валидиране.

Какво е имейл адрес?

Имейл адрес, както е дефиниран от формата за интернет съобщения (RFC 5322), се състои от две основни части: локална част и част на домейн. Местната част идва преди @ и частта за домейна идва след него. Ето пример за имейл адрес: example@example.com, Където example е местната част и example.com е частта на домейна.

  • местен – Локалната част на имейл адреса може да съдържа комбинация от буквено-цифрови знаци, точки, тирета, знаци плюс и долни черти. Обикновено се използва за идентифициране на конкретна пощенска кутия или акаунт на сървър.
  • домейн – Домейн частта на имейл адреса се състои от името на домейна и неговия домейн от първо ниво (TLD). Името на домейна е низ от знаци, който идентифицира сървъра, който хоства имейл акаунта. TLD указва типа субект, отговорен за името на домейна, като например код на държава (напр .uk) или общ домейн от първо ниво (напр .com, .org).

Въпреки че това е основната структура на имейл адреса, правилата за това какво представлява валиден имейл адрес са сложни.

Колко дълъг може да бъде един имейл адрес?

Днес трябваше да направя ровене, за да го намеря, но знаехте ли каква е дължината на имейл адреса? Всъщност е разбит на части ... Local@Domain.com.

  1. Local може да бъде от 1 до 64 знака.
  2. Домейнът може да бъде от 1 до 255 знака.

Това означава, че – технически – това може да е валиден имейл адрес:

loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc@loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPhasellusatin
ciduntaturpisaduis.com

Опитайте да поставите това на визитна картичка! По ирония на съдбата повечето полета за имейл адреси са ограничени до 100 знака в мрежата... което е технически неправилно. Някои от другите регулярни изрази, използвани за валидиране на имейл адреси, също търсят 3-цифрен домейн от първо ниво, като .com; обаче няма ограничение за дължината на домейни от първо ниво (Напр. Martech Zone има 4 цифри – .zone).

Редовни изрази

регулярен израз е перфектен метод за тестване на имейл адрес поради своята програмна структура. Регулярните изрази се използват широко в езиците за програмиране и текстовите редактори и често се интегрират в библиотеки или рамки за обработка на текст. Те се поддържат от много езици за програмиране, включително 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!#$%&amp;'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&amp;'*+/=?^_`{|}~-]+)*|"(?:[\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.

Douglas Karr

Douglas Karr е CMO на OpenINSIGHTS и основателят на Martech Zone. Дъглас е помогнал на десетки успешни стартъпи на MarTech, съдействал е за надлежна проверка на над $5 милиарда в придобивания и инвестиции на Martech и продължава да помага на компаниите при прилагането и автоматизирането на техните стратегии за продажби и маркетинг. Дъглас е международно признат експерт и лектор по дигитална трансформация и MarTech. Дъглас също е публикуван автор на ръководство за манекени и книга за бизнес лидерство.

Свързани статии

Бутон "Нагоре" горе
Близо

Открит е рекламен блок

Martech Zone е в състояние да ви предостави това съдържание безплатно, тъй като осигуряваме приходи от нашия сайт чрез приходи от реклами, партньорски връзки и спонсорство. Ще сме благодарни, ако премахнете блокера си за реклами, докато разглеждате нашия сайт.