CRM og gagnapallarTölvupóstmarkaðssetning og sjálfvirkni

Hvernig á að staðfesta netfang með reglulegum tjáningum (Regex). Dæmi um HTML5, PHP, C#, Python og Java kóða.

Nánast hvert forritunarmál styður reglubundnar tjáningar nú á dögum. Þó að sumum forriturum líki ekki við þá, þá eru þeir sannarlega bestu starfshættir þar sem þeir framkvæma venjulega aðgerðir eins og staðfestingu mjög hratt með færri netþjónaauðlindum. Netföng eru fullkomið dæmi ... þar sem auðvelt er að athuga þau til að tryggja að þau séu rétt sniðin.

Hafðu í huga að staðfesting er það ekki sannprófun. Staðfesting þýðir einfaldlega að gögnin sem send eru fylgja stöðluðu sniði sem er rétt smíðað. Nokkrir áhugaverðir hlutir um netföng sem gætu misst af við staðfestingu.

Hvað er netfang?

Netfang, eins og það er skilgreint af Internet Message Format (RFC 5322), samanstendur af tveimur meginhlutum: staðbundnum hluta og lénshluta. Staðbundna hluti kemur á undan @ tákn og lénshlutinn kemur á eftir. Hér er dæmi um netfang: example@example.com, Þar sem example er staðbundinn hluti og example.com er lénshlutinn.

  • Local – Staðbundinn hluti netfangs getur innihaldið blöndu af tölustöfum, punktum, bandstrikum, plústáknum og undirstrikum. Það er venjulega notað til að auðkenna tiltekið pósthólf eða reikning á netþjóni.
  • lén – Lénshluti netfangs samanstendur af léninu og efstu léni þess (Þjóðarlén). Lénið er strengur af stöfum sem auðkennir netþjóninn sem hýsir tölvupóstreikninginn. TLD tilgreinir tegund aðila sem ber ábyrgð á léninu, svo sem landskóða (td .uk) eða almennt efstu lén (td .com, .org).

Þó að þetta sé grunnbygging netfangs eru reglurnar um hvað telst gilt netfang flóknar.

Hversu langt getur netfang verið?

Ég þurfti að grafa í dag til að finna það, en vissirðu hvað gild lengd netfangsins er? Það er í raun brotið í hluta ... Local@Domain.com.

  1. Staðbundið getur verið 1 til 64 stafir.
  2. Lénið getur verið 1 til 255 stafir.

Það þýðir að - tæknilega séð - gæti þetta verið gilt netfang:

loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc@loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPhasellusatin
ciduntaturpisaduis.com

Prófaðu að setja það á nafnspjald! Það er kaldhæðnislegt að flestir netfangsreitir takmarkast við 100 stafi á vefnum... sem er tæknilega rangt. Sumar af hinum reglulegu tjáningunum sem notaðar eru til að staðfesta netföng leita einnig að þriggja stafa efstu léni, eins og .com; þó, það er engin takmörkun á lengd efstu lén (td. Martech Zone hefur 4 tölustafi – .zone).

Venjuleg tjáning

RegEx er fullkomin aðferð til að prófa netfang vegna forritunarlegrar uppbyggingar þess. Regluleg orðasambönd eru mikið notuð í forritunarmálum og textaritlum og eru oft samþætt í textavinnslusöfn eða ramma. Þau eru studd af mörgum forritunarmálum, þar á meðal Python, Java, C# og JavaScript, meðal annarra.

Stöðlun netfanga er miklu flóknari en þú gerir þér grein fyrir. Þegar skrifað er samkvæmt staðlinum, hér er hin sanna reglubundna tjáning fyrir netfang, inneign á 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])?

Þetta reglubundna tjáningarmynstur passar við grunnsnið netfangs, þar á meðal tölustafi, punkta, bandstrik, plústákn og undirstrik í notandanafninu, fylgt eftir með @ tákn, fylgt eftir með lén. Það er mikilvægt að hafa í huga að þetta mynstur mun aðeins athuga snið netfangsins en ekki raunverulegt Tilvist af netfanginu.

HTML5 inniheldur staðfestingu á uppbyggingu tölvupósts

Auðveldasta leiðin til að tryggja að tölvupóstur sé gildur samkvæmt staðlinum er með því að nota HTML5 tölvupóstinnsláttarreit:

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

Það eru tímar þó að vefforritið þitt vill samt staðfesta netfangið bæði í vafranum þegar það er slegið inn og þegar það er sent á netþjóninn þinn.

Regex fyrir rétt netfang í PHP

Fáir gera sér grein fyrir því, en PHP er nú með RFC staðlinum innbyggðan í það síu staðfestingaraðgerð.

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

Regex fyrir rétt netfang í C#

Hér er grunnprófun á netfangi í 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);
    }
}

Hagnýt notkun þessarar aðferðar:

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 fyrir rétt netfang í Java

Hér er grunn sannprófun á netfangi í 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();
    }
}

Hagnýt notkun þessarar aðferðar:

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 fyrir rétt netfang í Python

Hér er grunn sannprófun á netfangi í 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

Hagnýt notkun þessarar aðferðar:

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 fyrir rétt netfang í JavaScript

Þú þarft ekki að hafa of flókinn staðal til að athuga uppbyggingu netfanga. Hér er einföld leið til að nota JavaScript.

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

Auðvitað er það ekki samkvæmt RFC staðlinum, svo þú gætir viljað staðfesta hvern hluta gagna til að tryggja að þau séu gild. Þessi reglubundna tjáning mun vera í samræmi við um 99.9% netfönga þarna úti. Það er ekki fullkomlega staðlað, en það er gagnlegt fyrir nánast hvaða verkefni sem er.

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

Heiður fyrir sum þessara dæma fer til HTML.form.guide.

Douglas Karr

Douglas Karr er CMO af OpenINSIGHTS og stofnandi Martech Zone. Douglas hefur hjálpað tugum farsælra MarTech sprotafyrirtækja, hefur aðstoðað við áreiðanleikakönnun yfir $5 milljarða í kaupum og fjárfestingum Martech og heldur áfram að aðstoða fyrirtæki við að innleiða og gera sjálfvirkan sölu- og markaðsáætlanir sínar. Douglas er alþjóðlega viðurkenndur stafrænn umbreytingu og MarTech sérfræðingur og ræðumaður. Douglas er einnig útgefinn höfundur Dummie's guide og bók um leiðtogaviðskipti.

tengdar greinar

Til baka efst á hnappinn
Loka

Auglýsingablokk greind

Martech Zone er fær um að útvega þér þetta efni að kostnaðarlausu vegna þess að við afla tekna af síðunni okkar með auglýsingatekjum, tengdatenglum og kostun. Okkur þætti vænt um ef þú myndir fjarlægja auglýsingablokkann þinn þegar þú skoðar síðuna okkar.