CRM i plataformes de dadesMàrqueting per correu electrònic i automatització

Com validar una adreça de correu electrònic amb expressions regulars (regex). Exemple de codi HTML5, PHP, C#, Python i Java.

Pràcticament tots els llenguatges de programació admeten expressions regulars avui dia. Tot i que a alguns desenvolupadors no els agraden, realment són una pràctica recomanada, ja que solen realitzar funcions com la validació extremadament ràpida amb menys recursos del servidor. Les adreces de correu electrònic són un exemple perfecte... on es poden comprovar fàcilment per assegurar-se que tenen el format adequat.

Tingueu en compte que la validació no ho és verificació. La validació simplement vol dir que les dades passades segueixen un format estàndard que s'ha construït correctament. Algunes coses interessants sobre les adreces de correu electrònic que es podrien perdre en validar-les.

Què és una adreça de correu electrònic?

Una adreça de correu electrònic, tal com es defineix pel format de missatge d'Internet (RFC 5322), està format per dues parts principals: una part local i una part de domini. La part local arriba abans que la @ símbol i la part del domini ve després. Aquí teniu un exemple d'adreça de correu electrònic: example@example.com, On example és la part local i example.com és la part del domini.

  • Local – La part local d'una adreça de correu electrònic pot contenir una combinació de caràcters alfanumèrics, punts, guions, signes més i guions baixos. Normalment s'utilitza per identificar una bústia de correu o un compte específic en un servidor.
  • domini – La part de domini d'una adreça de correu electrònic consta del nom de domini i el seu domini de primer nivell (TLD). El nom de domini és una cadena de caràcters que identifica el servidor que allotja el compte de correu electrònic. El TLD especifica el tipus d'entitat responsable del nom de domini, com ara un codi de país (p .uk) o un domini genèric de primer nivell (p. ex .com, .org).

Tot i que aquesta és l'estructura bàsica d'una adreça de correu electrònic, les regles del que constitueix una adreça de correu electrònic vàlida són complexes.

Quant de temps pot tenir una adreça de correu electrònic?

Avui he hagut de fer algunes excavacions per trobar-la, però sabíeu quina és la longitud vàlida d'una adreça de correu electrònic? En realitat es divideix en parts ... Local@Domini.com.

  1. Local pot tenir entre 1 i 64 caràcters.
  2. El domini pot tenir entre 1 i 255 caràcters.

Això vol dir que, tècnicament, aquesta podria ser una adreça de correu electrònic vàlida:

loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc@loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPhasellusatin
ciduntaturpisaduis.com

Prova d'ajustar-ho a una targeta de visita! Irònicament, la majoria dels camps d'adreces de correu electrònic estan limitats a 100 caràcters al web... cosa que és tècnicament incorrecta. Algunes de les altres expressions regulars utilitzades per validar adreces de correu electrònic també busquen un domini de primer nivell de 3 dígits, com ara .com; tanmateix, no hi ha cap limitació a la durada de dominis de primer nivell (per exemple. Martech Zone té 4 dígits – .zone).

Expressions regulars

RegEx és un mètode perfecte per provar una adreça de correu electrònic a causa de la seva estructura programàtica. Les expressions regulars s'utilitzen àmpliament en llenguatges de programació i editors de text i sovint s'integren en biblioteques o frameworks de processament de text. Són compatibles amb molts llenguatges de programació, com Python, Java, C# i JavaScript, entre d'altres.

L'estandardització d'adreces de correu electrònic és molt més complexa del que us penseu. Quan s'escriu amb l'estàndard, aquí teniu l'expressió regular real d'una adreça de correu electrònic, crèdit a 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])?

Aquest patró d'expressió regular coincideix amb el format bàsic d'una adreça de correu electrònic, inclosos els caràcters alfanumèrics, els punts, els guions, els signes més i els guions baixos al nom d'usuari, seguits d'un @ símbol, seguit d'un nom de domini. És important tenir en compte que aquest patró només comprovarà el format de l'adreça de correu electrònic i no l'actual existència de l'adreça de correu electrònic.

HTML5 inclou la validació de l'estructura del correu electrònic

El mitjà més fàcil per garantir que un correu electrònic sigui vàlid segons l'estàndard és utilitzar un camp d'entrada de correu electrònic HTML5:

<input type='email' name='email' placeholder='name@domain.com' />

Hi ha vegades, però, que la vostra aplicació web encara voldrà validar l'adreça de correu electrònic tant al navegador quan la introduïu com quan s'enviï al vostre servidor.

Regex per a una adreça de correu electrònic adequada en PHP

Poca gent se n'adona, però PHP ara té l'estàndard RFC integrat funció de validació del filtre.

if(filter_var("name@domain.com", FILTER_VALIDATE_EMAIL)) {
    // Valid
}
else {
    // Not Valid
}

Regex per a una adreça de correu electrònic adequada en C#

Aquí teniu la validació bàsica d'una adreça de correu electrònic en 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);
    }
}

Ús pràctic d'aquest mètode:

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 per a una adreça de correu electrònic adequada a Java

Aquí teniu la validació bàsica d'una adreça de correu electrònic a 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();
    }
}

Ús pràctic d'aquest mètode:

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 per a una adreça de correu electrònic adequada a Python

Aquí teniu una validació bàsica d'una adreça de correu electrònic a 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

Ús pràctic d'aquest mètode:

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 per a una adreça de correu electrònic adequada en JavaScript

No cal que tingueu un estàndard massa complex per comprovar l'estructura d'una adreça de correu electrònic. Aquí teniu un mitjà senzill per utilitzar JavaScript.

function validateEmail(email) 
{
    var re = /\\S+@\\S+/;
    return re.test(email);
}

Per descomptat, això no s'ajusta a l'estàndard RFC, així que és possible que vulgueu validar cada secció de les dades per assegurar-vos que siguin vàlides. Aquesta expressió regular complirà aproximadament el 99.9% de les adreces de correu electrònic que hi ha. No és totalment estàndard, però és útil per a pràcticament qualsevol projecte.

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);
}

El mèrit d'alguns d'aquests exemples va a Guia.formulari.HTML.

Douglas Karr

Douglas Karr és CMO de OpenINSIGHTS i el fundador de la Martech Zone. Douglas ha ajudat a desenes d'empreses d'èxit de MarTech, ha ajudat en la diligència deguda de més de 5 mil milions de dòlars en adquisicions i inversions de Martech i continua ajudant les empreses a implementar i automatitzar les seves estratègies de vendes i màrqueting. Douglas és un expert i conferenciant de MarTech en transformació digital reconegut internacionalment. Douglas també és autor publicat d'una guia de Dummie i d'un llibre sobre lideratge empresarial.

Articles Relacionats

Torna al botó superior
a prop

Adblock detectat

Martech Zone és capaç de proporcionar-vos aquest contingut sense cap cost perquè monetitzem el nostre lloc mitjançant ingressos publicitaris, enllaços d'afiliats i patrocinis. Agrairem que elimineu el bloquejador d'anuncis mentre visualitzeu el nostre lloc.