CRM- en dataplatformsE-posbemarking en outomatisering

Hoe om 'n e-posadres met gereelde uitdrukkings (Regex) te bekragtig. Voorbeeld van HTML5, PHP, C#, Python en Java-kode.

Feitlik elke programmeertaal ondersteun deesdae gereelde uitdrukkings. Alhoewel sommige ontwikkelaars nie van hulle hou nie, is dit werklik 'n beste praktyk, aangesien hulle gewoonlik funksies soos validering uiters vinnig uitvoer met minder bedienerhulpbronne. E-posadresse is 'n perfekte voorbeeld ... waar hulle maklik nagegaan kan word om te verseker dat hulle behoorlik geformateer is.

Hou in gedagte dat validering nie is nie verifikasie. Validasie beteken eenvoudig dat die data wat deurgegee word, 'n standaardformaat volg wat behoorlik saamgestel is. 'n Paar interessante dinge oor e-posadresse wat gemis kan word tydens validering.

Wat is 'n e-posadres?

'n E-posadres, soos gedefinieer deur die internetboodskapformaat (RFC 5322), bestaan ​​uit twee hoofdele: 'n plaaslike deel en 'n domeindeel. Die plaaslike deel kom voor die @ simbool en die domein deel kom daarna. Hier is 'n voorbeeld van 'n e-posadres: example@example.com, Waar example is die plaaslike deel en example.com is die domein deel.

  • Plaaslike – Die plaaslike deel van 'n e-posadres kan 'n kombinasie van alfanumeriese karakters, punte, koppeltekens, plustekens en onderstrepings bevat. Dit word tipies gebruik om 'n spesifieke posbus of rekening op 'n bediener te identifiseer.
  • Domain – Die domeingedeelte van 'n e-posadres bestaan ​​uit die domeinnaam en sy topvlakdomein (TLD). Die domeinnaam is 'n string karakters wat die bediener identifiseer wat die e-posrekening huisves. Die TLD spesifiseer die tipe entiteit wat verantwoordelik is vir die domeinnaam, soos 'n landkode (bv .uk) of 'n generiese topvlakdomein (bv .com, .org).

Alhoewel dit die basiese struktuur van 'n e-posadres is, is die reëls vir wat 'n geldige e-posadres uitmaak kompleks.

Hoe lank kan 'n e-posadres wees?

Ek moes vandag grawe om dit op te spoor, maar het u geweet wat die geldige lengte van 'n e-posadres is? Dit is eintlik in dele opgebreek ... Local@Domain.com.

  1. Plaaslik kan 1 tot 64 karakters wees.
  2. Domein kan 1 tot 255 karakters bevat.

Dit beteken dat - tegnies - dit 'n geldige e-posadres kan wees:

loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc@loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPhasellusatin
ciduntaturpisaduis.com

Probeer om dit op 'n besigheidskaartjie te pas! Ironies genoeg is die meeste e-posadresvelde beperk tot 100 karakters op die web ... wat tegnies verkeerd is. Sommige van die ander gereelde uitdrukkings wat gebruik word om e-posadresse te valideer, soek ook 'n 3-syfer-topvlakdomein, soos .com; daar is egter geen beperking op die lengte van topvlakdomeine (bv. Martech Zone het 4 syfers – .zone).

Gereelde uitdrukkings

RegEx is 'n perfekte metode om 'n e-posadres te toets vanweë die programmatiese struktuur daarvan. Gereelde uitdrukkings word wyd gebruik in programmeertale en teksredigeerders en word dikwels in teksverwerkingsbiblioteke of -raamwerke geïntegreer. Hulle word ondersteun deur baie programmeertale, insluitend Python, Java, C# en JavaScript, onder andere.

E-posadresstandaardisering is baie meer kompleks as wat jy besef. Wanneer dit volgens die standaard geskryf is, is hier die ware gereelde uitdrukking vir 'n e-posadres, krediet aan 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])?

Hierdie gereelde uitdrukkingspatroon pas by die basiese formaat van 'n e-posadres, insluitend alfanumeriese karakters, punte, koppeltekens, plustekens en onderstrepe in die gebruikernaam, gevolg deur 'n @ simbool, gevolg deur 'n domeinnaam. Dit is belangrik om daarop te let dat hierdie patroon slegs die formaat van die e-posadres sal kontroleer en nie die werklike nie bestaan van die e-posadres.

HTML5 sluit e-posstruktuurvalidering in

Die maklikste manier om te verseker dat 'n e-pos volgens die standaard geldig is, is deur 'n HTML5-e-posinvoerveld te gebruik:

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

Daar is egter tye dat jou webtoepassing steeds die e-posadres in die blaaier wil bekragtig wanneer dit ingevoer word en wanneer dit by jou bediener ingedien word.

Regex vir 'n behoorlike e-posadres in PHP

Min mense besef dit, maar PHP het nou die RFC-standaard ingebou filter validasie funksie.

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

Regex vir 'n behoorlike e-posadres in C#

Hier is basiese validering van 'n e-posadres in 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);
    }
}

Praktiese gebruik van hierdie metode:

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 vir 'n behoorlike e-posadres in Java

Hier is basiese validering van 'n e-posadres in 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();
    }
}

Praktiese gebruik van hierdie metode:

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 vir 'n behoorlike e-posadres in Python

Hier is 'n basiese validering van 'n e-posadres in 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

Praktiese gebruik van hierdie metode:

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 vir 'n behoorlike e-posadres in JavaScript

Jy hoef nie 'n te komplekse standaard te hê om 'n e-posadresstruktuur na te gaan nie. Hier is 'n eenvoudige manier om JavaScript te gebruik.

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

Dit is natuurlik nie volgens die RFC-standaard nie, so jy wil dalk elke afdeling van die data valideer om te verseker dat dit geldig is. Hierdie gereelde uitdrukking sal aan ongeveer 99.9% van e-posadresse daar buite voldoen. Dit is nie heeltemal op standaard nie, maar dit is nuttig vir feitlik enige projek.

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

Krediet vir sommige van hierdie voorbeelde gaan aan HTML.vorm.gids.

Douglas Karr

Douglas Karr is CMO van Maak INSIGTE oop en die stigter van die Martech Zone. Douglas het tientalle suksesvolle MarTech-opstartondernemings gehelp, het gehelp met die omsigtigheidsondersoek van meer as $5 miljard in Martech-verkrygings en -beleggings, en gaan voort om maatskappye te help met die implementering en outomatisering van hul verkoops- en bemarkingstrategieë. Douglas is 'n internasionaal erkende digitale transformasie en MarTech deskundige en spreker. Douglas is ook 'n gepubliseerde skrywer van 'n Dummie-gids en 'n besigheidsleierskapboek.

verwante Artikels

Terug na bo knoppie
Sluiting

Advertensieblok bespeur

Martech Zone is in staat om hierdie inhoud gratis aan u te verskaf, want ons verdien ons webwerf deur advertensie-inkomste, geaffilieerde skakels en borgskappe. Ons sal dit waardeer as jy jou advertensieblokkering sal verwyder terwyl jy ons webwerf bekyk.