Marketingu me email dhe Automatizimi i marketingut me emailCRM dhe Platformat e të Dhënave

Si të vërtetoni një adresë emaili me shprehje të rregullta (Regex)

Pothuajse çdo gjuhë programimi mbështet shprehjet e rregullta në ditët e sotme. Ndërsa disa zhvillues nuk i pëlqejnë ato, ato janë me të vërtetë një praktikë më e mirë pasi ato zakonisht kryejnë funksione si vërtetimi jashtëzakonisht shpejt me më pak burime serveri. Adresat e emailit janë një shembull i përsosur ... ku ato mund të kontrollohen lehtësisht për t'u siguruar që janë formatuar siç duhet.

Mbani në mend se vërtetimi nuk është verifikim. Vlefshmëria thjesht do të thotë që të dhënat e kaluara ndjekin një format standard që është ndërtuar siç duhet. Disa gjëra interesante në lidhje me adresat e emailit që mund të mungojnë pas verifikimit.

Sa e gjatë mund të jetë një adresë emaili?

Unë duhej të bëja disa gërmime sot për ta gjetur, por a e dini se cila është gjatësia e vlefshme e një adrese emaili? Në të vërtetë është thyer në pjesë Emri@Domain.com. Kjo është sipas RFC2822.

  1. Emri mund të jetë nga 1 deri në 64 karaktere.
  2. Domeni mund të jetë nga 1 deri në 255 karaktere.

Kjo do të thotë se kjo mund të jetë një adresë e vlefshme emaili:

loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc@loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPhasellusatin
ciduntaturpisaduis.com

Provoni ta vendosni në një kartëvizitë! Ironikisht, shumica e fushave të adresës së emailit janë të kufizuara në 100 karaktere në ueb… që është teknikisht e pasaktë. Disa nga shprehjet e tjera të rregullta të përdorura për të vërtetuar adresat e emailit kërkojnë gjithashtu një domen 3-shifror të nivelit të lartë, si .com; megjithatë, nuk ka asnjë kufizim për gjatësinë e domenet e nivelit të lartë (p.sh. Martech Zone ka 4 shifra – .zone).

Standardizimi i adresës së emailit është shumë më kompleks nga sa e kuptoni. Kur shkruhet në standard, këtu është shprehja e vërtetë e rregullt për një adresë emaili, krediti për 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 as nuk ka nevojë për verifikim

Mënyra më e lehtë për të siguruar që një email është i vlefshëm sipas standardit është duke përdorur një fushë të hyrjes së emailit HTML5:

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

Megjithatë, ka raste që aplikacioni juaj në internet do të vazhdojë të vërtetojë adresën e emailit si në shfletues kur futet dhe kur dorëzohet në serverin tuaj.

Regex për një adresë të duhur emaili në PHP

Pak njerëz e kuptojnë atë, por PHP tani ka standardin RFC të integruar në të funksioni i vlefshmërisë së filtrit.

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

Regex për një adresë të duhur emaili në Javascript

Nuk është e nevojshme të keni një standard tepër kompleks për të kontrolluar strukturën e adresës së emailit. Ja një mjet i thjeshtë duke përdorur JavaScript.

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

Sigurisht, kjo nuk është në standardin RFC, kështu që ju mund të dëshironi të vërtetoni çdo seksion të të dhënave për të siguruar që është e vlefshme. Kjo shprehje e rregullt do të përputhet me rreth 99.9% të adresave të emailit atje. Nuk është plotësisht standard, por është i dobishëm për pothuajse çdo projekt.

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

Kredia për këta shembuj shkon tek HTML.forma.udhëzues.

Douglas Karr

Douglas Karr është themeluesi i Martech Zone dhe ekspert i njohur për transformimin dixhital. Doug është një Kryesuesi dhe Marketingu Kryetari Publik. Ai është VP dhe themelues i Highbridge, një firmë e specializuar për të ndihmuar kompanitë e ndërmarrjeve për të transformuar dhe maksimizuar dixhitalisht investimet e tyre në teknologji duke përdorur teknologjitë e Salesforce. Ai ka zhvilluar marketing dixhital dhe strategji të produkteve për Dell Technologies, GoDaddy, Salesforce, Trendet në internetdhe SmartFOCUS. Douglas është gjithashtu autor i Blogim i korporatave për Dummies dhe bashkautor i Libri më i mirë i biznesit.

41 Comments

  1. Për formularët me adresa të shumta emaili, do të ishte mirë të bënit class=”emailaddress”. Nëse keni bibliotekën prototype.js (http://www.prototypejs.org) e përfshirë në faqe mund të bëni diçka si kjo:

    var valid = e vërtetë;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    $$('.adresa e emailit').secili (funksioni(email) {
    if (!filter.test(email.value)) {
    alarm (?Ju lutemi jepni një adresë të vlefshme emaili?);
    email.fokus;
    i vlefshëm = i rremë;
    }
    });
    kthimi i vlefshëm;

  2. Më pëlqen ideja, por do të nguroja të miratoja këtë shprehje të rregullt të veçantë pa përshkrim se cilat adresa emaili legale nuk i pranon dhe cilat adresa të paligjshme i lejon.

    Për një shembull të një shprehjeje të rregullt që bën një punë të mirë krahas një shpjegimi se cilat raste nuk mbulon, shihni këtë:

    http://www.regular-expressions.info/email.html

    Preferenca ime personale është të mbuloj shumicën e rasteve të thjeshta dhe të jap një paralajmërim për çdo gjë tjetër në vend që ta refuzoj atë. Nëse Bob vërtet dëshiron të dorëzohet bob@com.museum në vend se bob@museum.com, pse të mos e lejosh?

    1. Përshëndetje Reg,

      Ju mund të provoni Regex duke përdorur një Tester Regex në internet.

      Gjithashtu, ka shumë më tepër që mund të bëhet nëse doni të siguroni një adresë e-mail është e vlefshme në përputhje me RFC.

      Ka disa arsye për të mos lejuar dikë të fusë një adresë emaili të pavlefshme:
      1. Ata do të mërziten me ju kur emaili që ata prisnin nuk do t'ju marrë - pavarësisht nëse ishte apo jo faji juaj që adresa ishte futur gabimisht.
      2. Nëse com.museum ishte një domen i vlefshëm dhe, le të themi, Yahoo! e përdori atë – çdo adresë e-mail që u kthye do të kishte një ndikim negativ në reputacionin e kompanisë suaj për dërgimin e emailit. Kjo mund të çojë në bllokimin e të gjithë email-eve të kompanisë suaj.
      3. Nëse ofruesi juaj i shërbimit të postës elektronike ju ka lejuar të hyni bob@com.museum, do të paguani gjithashtu për çdo email të dërguar në atë adresë emaili derisa ata të çabonin atë adresë për shkak të kthimeve. Unë do të largohesha nga çdo ESP që do të lejonte një adresë emaili të pavlefshme si kjo - ata thjesht po ju marrin paratë!

      Faleminderit për ndalimin nga!
      Doug

  3. Ka një mënyrë shumë më të thjeshtë për të shkruar shprehjen:
    var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
    – Me modifikuesin përfundimtar /i, nuk ka nevojë të tregohet diapazoni i shkronjave të mëdha.
    – Nuk di asnjë TLD me numra në të.
    Në një shënim anësor, unë lejoj TLD me deri në 6 karaktere; të reja mbërrijnë rregullisht dhe nuk i dihet kurrë (epo, disa të ardhme mund të kenë edhe numra, e di).

  4. Hi there,

    Unë po përpiqem ta përdor këtë në një formë ekzistuese në kohë reale, por kjo nuk duket se po vërtetohet në kohë reale si kontrolluesi i fuqisë së fjalëkalimit tuaj…

    Apo, jam kaq i paditur dhe nuk funksionon për mua?

  5. Vetëm një korrigjim i vogël: Shprehja e rregullt ka një shtesë ()+ në fund. Duhet të lexohet:

    ^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+[a-zA-Z0-9]{2,4}$

    Me të parën do të pranoheshin TLD-të e çdo gjatësie (gjë që nuk është thelbësisht e gabuar siç kanë theksuar të tjerët, por nëse ky ishte qëllimi, shprehja mund të shkurtohej).

  6. A mund të shpjegoni shprehjen e rregullt të këtij kodi dhe si funksionon ai? Gjithashtu për .test – A është .test një deklaratë e paracaktuar në javascript për të kontrolluar gjërat siç keni bërë në kodin e mësipërm?

  7. Ky është një kod i shkurtër për shprehjen e emailit-

    funksion validateEmail(id)
    {
    var email Modeli = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$/;
    kthej emailPattern.test(id);

    }
    Deepak Rai
    Varanasi

  8. Faleminderit, por ka një gabim në këtë regex. Unë nuk jam një ekspert regex, por provova email:

    test@test

    dhe e kaloi regeksin... Vura re se i mungonte ikja nga "." kështu duhet të jetë:

    /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/

  9. Epo, ky është vetëm një kontroll i përafërt, por jo 100% i saktë, për shembull, kjo do të ishte në rregull john_doe.@gmail.com e cila në fakt nuk është një adresë e vlefshme e-mail (pika nuk lejohet si karakter i fundit në pjesën lokale të e-mail).
    Gjithashtu do të pranonte john…doe@gmail.com e cila është gjithashtu e pavlefshme pasi nuk mund të ketë më shumë se një pikë në një sekuencë.

    Këto janë vetëm disa të meta që i vura re në shikim të parë.
    Synimi im nuk është të turpërohem vetëm për ta vënë në dukje këtë në rast se dikush po planifikon ta përdorë këtë si një kontroll sigurie – jo mjaftueshëm i sigurt.

    Për informacion në lidhje me adresat e vlefshme të emailit, shikoni këtë: http://en.wikipedia.org/wiki/E-mail_address

  10. Deepak,

    Në fakt, unë mendoj se ju duhet të aplikoni një arratisje për pikën (“”). Pra, funksioni juaj duhet të jetë, në vend të kësaj:

    funksion validateEmail(id)
    {
    var email Modeli = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$/;
    kthej emailPattern.test(id);

    }

    Përndryshe, pika do të thoshte "çdo personazh". Unë besoj se personazheve të tillë të veçantë duhet t'u shpëtojmë.

    Regards,

    Federico

  11. funksion validateEmail(fld) {
    var gabim=””;
    var tfld = trim(fld.vlera); // vlera e fushës me hapësirën e bardhë të shkurtuar
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
    var ilegaleChars= /[(),;:\”[]]/ ;

    if (fld.value == "Fut adresën tuaj të emailit") {

    gabim = “Ju lutemi shkruani adresën tuaj të emailit.n”;
    } else if (!emailFilter.test(tfld)) { //test email për karaktere të paligjshme

    gabim = “Ju lutemi shkruani një adresë të vlefshme emaili.n”;
    } else if (fld.value.match(ilegalChars)) {

    gabim = “Ju lutemi shkruani një adresë të vlefshme emaili.n”;
    }
    gabim kthimi;
    }

  12. funksion validateEmail(fld) {
    var gabim=””;
    var tfld = trim(fld.vlera); // vlera e fushës me hapësirën e bardhë të shkurtuar
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
    var ilegaleChars= /[(),;:\”[]]/ ;

    if (fld.value == "Fut adresën tuaj të emailit") {

    gabim = “Ju lutemi shkruani adresën tuaj të emailit.n”;
    } else if (!emailFilter.test(tfld)) { //test email për karaktere të paligjshme

    gabim = “Ju lutemi shkruani një adresë të vlefshme emaili.n”;
    } else if (fld.value.match(ilegalChars)) {

    gabim = “Ju lutemi shkruani një adresë të vlefshme emaili.n”;
    }
    gabim kthimi;
    }

  13. funksion validateEmail(fld) {
    var gabim=””;
    var tfld = trim(fld.vlera); // vlera e fushës me hapësirën e bardhë të shkurtuar
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
    var ilegaleChars= /[(),;:\”[]]/ ;

    if (fld.value == "Fut adresën tuaj të emailit") {

    gabim = “Ju lutemi shkruani adresën tuaj të emailit.n”;
    } else if (!emailFilter.test(tfld)) { //test email për karaktere të paligjshme

    gabim = “Ju lutemi shkruani një adresë të vlefshme emaili.n”;
    } else if (fld.value.match(ilegalChars)) {

    gabim = “Ju lutemi shkruani një adresë të vlefshme emaili.n”;
    }
    gabim kthimi;
    }

  14. funksion validateEmail(fld) {
    var gabim=””;
    var tfld = trim(fld.vlera); // vlera e fushës me hapësirën e bardhë të shkurtuar
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
    var ilegaleChars= /[(),;:\”[]]/ ;

    if (fld.value == "Fut adresën tuaj të emailit") {

    gabim = “Ju lutemi shkruani adresën tuaj të emailit.n”;
    } else if (!emailFilter.test(tfld)) { //test email për karaktere të paligjshme

    gabim = “Ju lutemi shkruani një adresë të vlefshme emaili.n”;
    } else if (fld.value.match(ilegalChars)) {

    gabim = “Ju lutemi shkruani një adresë të vlefshme emaili.n”;
    }
    gabim kthimi;
    }

Çfarë mendoni ju?

Kjo faqe përdor Akismet për të reduktuar spamin. Mësoni se si përpunohet komenti juaj.

Artikuj Të Ngjashëm