Marchnata E-bost ac Awtomeiddio Marchnata E-bostLlwyfannau CRM a Data

Sut i Ddilysu Cyfeiriad E-bost Gyda Mynegiadau Rheolaidd (Regex)

Mae bron pob iaith raglennu yn cefnogi ymadroddion rheolaidd y dyddiau hyn. Er nad yw rhai datblygwyr yn eu hoffi, maent yn wir yn arfer gorau gan eu bod fel arfer yn cyflawni swyddogaethau fel dilysu yn hynod o gyflym gyda llai o adnoddau gweinydd. Mae cyfeiriadau e-bost yn enghraifft berffaith ... lle gellir eu gwirio'n hawdd i sicrhau eu bod wedi'u fformatio'n gywir.

Cofiwch nad yw dilysu dilysu. Yn syml, mae dilysu'n golygu bod y data a basiwyd yn dilyn fformat safonol sydd wedi'i lunio'n gywir. Rhai pethau diddorol am gyfeiriadau e-bost y gellid eu methu ar ôl eu dilysu.

Pa mor hir y gall cyfeiriad e-bost fod?

Roedd yn rhaid i mi wneud rhywfaint o gloddio heddiw i ddod o hyd iddo, ond a oeddech chi'n gwybod beth yw hyd dilys cyfeiriad e-bost? Mae wedi torri i mewn i rannau mewn gwirionedd ... Enw@Domain.com. Mae hyn yn ôl RFC2822.

  1. Gall enw fod yn 1 i 64 nod.
  2. Gall parth fod yn 1 i 255 nod.

Mae hynny'n golygu y gallai hwn fod yn gyfeiriad e-bost dilys:

loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc@loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPhasellusatin
ciduntaturpisaduis.com

Ceisiwch osod hwnnw ar gerdyn busnes! Yn eironig, mae'r rhan fwyaf o feysydd cyfeiriad e-bost wedi'u cyfyngu i 100 nod ar y we ... sy'n dechnegol anghywir. Mae rhai o'r ymadroddion rheolaidd eraill a ddefnyddir i ddilysu cyfeiriadau e-bost hefyd yn edrych am barth lefel uchaf 3 digid, fel .com; fodd bynnag, nid oes cyfyngiad ar hyd y parthau lefel uchaf (ee. Martech Zone gyda 4 digid – .zone).

Mae safoni cyfeiriadau e-bost yn llawer mwy cymhleth nag yr ydych yn sylweddoli. Wedi'i ysgrifennu i'r safon, dyma'r gwir fynegiad rheolaidd ar gyfer cyfeiriad e-bost, credyd i 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])?

Nid yw HTML5 Hyd yn oed Angen Dilysu

Y ffordd hawsaf o sicrhau bod e-bost yn ddilys yn unol â'r safon yw trwy ddefnyddio maes mewnbwn e-bost HTML5:

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

Fodd bynnag, mae yna adegau y bydd eich rhaglen we yn dal i fod eisiau dilysu'r cyfeiriad e-bost yn y porwr wrth ei fewnosod a phan gaiff ei gyflwyno i'ch gweinydd.

Regex Am Gyfeiriad E-bost Priodol yn PHP

Ychydig iawn o bobl sy'n ei sylweddoli, ond erbyn hyn mae safon y Clwb Rygbi wedi'i gynnwys yn PHP swyddogaeth dilysu hidlydd.

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

Regex Am Gyfeiriad E-bost Priodol yn Javascript

Nid oes rhaid i chi gael safon rhy gymhleth ar gyfer gwirio strwythur cyfeiriad e-bost. Dyma ffordd syml o ddefnyddio JavaScript.

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

Wrth gwrs, nid yw hynny i'r safon RFC, felly efallai y byddwch am ddilysu pob adran o'r data i sicrhau ei fod yn ddilys. Bydd y mynegiant rheolaidd hwn yn cydymffurfio â thua 99.9% o'r cyfeiriadau e-bost sydd ar gael. Nid yw'n gwbl safonol, ond mae'n ddefnyddiol ar gyfer bron unrhyw brosiect.

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

Credyd ar gyfer yr enghreifftiau hyn yn mynd i Canllaw.ffurflen HTML.

Douglas Karr

Douglas Karr yw sylfaenydd y Martech Zone ac arbenigwr cydnabyddedig ar drawsnewid digidol. Mae Doug yn a Prif Siaradwr Cyhoeddus a Marchnata. Ef yw VP a cofounder Highbridge, cwmni sy'n arbenigo mewn cynorthwyo cwmnïau menter i drawsnewid yn ddigidol a gwneud y mwyaf o'u buddsoddiad technoleg gan ddefnyddio technolegau Salesforce. Mae wedi datblygu strategaethau marchnata digidol a chynhyrchion ar gyfer Dell Technologies, GoDaddy, Salesforce, Tueddiadau gwe, a SmartFOCUS. Douglas hefyd yw awdur Blogio Corfforaethol ar gyfer Dymis a chyd-awdur Y Llyfr Busnes Gwell.

41 Sylwadau

  1. Ar gyfer ffurflenni sydd â sawl cyfeiriad e-bost, byddai'n dda gwneud class = "emailaddress". Os oes gennych y llyfrgell prototeip.js (http://www.prototypejs.org) wedi'i gynnwys ar y dudalen gallwch wneud rhywbeth fel hyn:

    var dilys = gwir;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    $$ ('. emailaddress') yr un (swyddogaeth (e-bost) {
    os (! filter.test (email.value)) {
    rhybudd (? Rhowch gyfeiriad e-bost dilys os gwelwch yn dda?);
    e-bost.focus;
    dilys = ffug;
    }
    });
    dychwelyd yn ddilys;

  2. Rwy'n hoffi'r syniad, ond byddwn yn betrusgar mabwysiadu'r mynegiant rheolaidd penodol hwn heb ddisgrifiad o ba gyfeiriadau e-bost cyfreithiol nad yw'n eu derbyn a pha gyfeiriadau anghyfreithlon y mae'n eu caniatáu.

    Am enghraifft o fynegiant rheolaidd sy'n gwneud gwaith gweddus ochr yn ochr ag esboniad o ba achosion nad yw'n ymdrin â nhw, gweler hyn:

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

    Fy newis personol yw ymdrin â'r rhan fwyaf o'r achosion syml a rhoi rhybudd am bopeth arall yn hytrach na'i wrthod. Os yw Bob wir eisiau sto cyflwyno bob@com.amgueddfa yn hytrach na bob@amgueddfa.com, beth am adael iddo?

    1. Helo Reg,

      Gallwch chi brofi'r Regex gan ddefnyddio Profwr Regex Ar-lein.

      Hefyd, yn bendant mae llawer mwy y gellir ei wneud os ydych chi am sicrhau cyfeiriad e-bost yn ddilys yn unol â'r RFC.

      Mae yna ychydig o resymau dros beidio â chaniatáu i rywun nodi cyfeiriad e-bost annilys:
      1. Byddant yn eich cythruddo pan na fydd yr e-bost yr oeddent yn ei ddisgwyl yn dod drwyddo - ni waeth ai eich bai chi oedd y cofnod, cofnodwyd y cyfeiriad yn anghywir.
      2. Pe bai com.museum yn barth dilys a, gadewch i ni ddweud, Yahoo! ei weithredu - byddai unrhyw gyfeiriad e-bost a adlamodd yn cael effaith negyddol ar enw da eich cwmni am ddosbarthu e-bost. Gallai hyn arwain at rwystro holl e-bost eich cwmni.
      3. Os oedd eich darparwr gwasanaeth e-bost yn caniatáu ichi fynd i mewn bob@com.amgueddfa, byddech hefyd yn talu am bob e-bost a anfonir i'r cyfeiriad e-bost hwnnw nes iddynt ddad-danysgrifio'r cyfeiriad hwnnw oherwydd bownsio. Byddwn yn cadw'n glir o unrhyw ESP a fyddai'n caniatáu cyfeiriad e-bost annilys fel 'na - maen nhw'n cymryd eich arian yn unig!

      Diolch am roi'r gorau iddi!
      Doug

  3. Mae yna ffordd symlach o lawer o ysgrifennu'r ymadrodd:
    var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
    - Gyda'r addasydd terfynol / i nid oes angen nodi'r ystod achosion uchaf.
    - Nid wyf yn gwybod am ddim TLD gyda rhifau ynddo.
    Ar nodyn ochr, rwy'n caniatáu TLD gyda hyd at 6 chars; mae rhai newydd yn cyrraedd yn rheolaidd a dydych chi byth yn gwybod (wel, efallai y bydd gan rai yn y dyfodol rifau ynddo hyd yn oed, dwi'n gwybod).

  4. Hi 'na,

    Rwy'n ceisio defnyddio hwn ar ffurf sy'n bodoli mewn amser real, ond nid yw'n ymddangos bod hyn yn dilysu mewn amser real fel eich gwiriwr cryfder cyfrinair ...

    Neu, ai fi yw'r unig gliw hwnnw, ac a yw'n gweithio i mi?

  5. btw, rwy'n hoff iawn o'r hyn sydd gennych yn digwydd yma, mae eich tiwtorialau yn syml iawn, byddaf yn bendant yn rhoi nod tudalen ar yr un hon….

  6. Cywiriad bach yn unig: Mae gan yr ymadrodd rheolaidd () + ychwanegol ar y diwedd. Dylai ddarllen:

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

    Gyda'r un cyntaf, byddai TLDs o unrhyw hyd yn cael eu derbyn (nad yw'n anghywir yn y bôn fel y mae eraill wedi nodi, ond os mai dyna'r bwriad, gellid byrhau'r mynegiant).

  7. A allwch chi egluro mynegiad rheolaidd y cod hwn a sut mae'n gweithio? Hefyd am .test - A yw .test yn ddatganiad diofyn yn javascript i wirio pethau fel y gwnaethoch yn y cod uchod?

  8. Cod byr yw hwn ar gyfer mynegiant e-bost-

    swyddogaeth validateEmail (id)
    {
    var emailPattern = /^0a-zA-Z9-0._-9+@DLE-zA-Z2,4-XNUMX.-XNUMX+.DLE-zA-ZXNUMXinneach$/;
    dychwelyd emailPattern.test (id);

    }
    Deepak Rai
    varanasi

  9. Cod byr yw hwn ar gyfer mynegiant e-bost-

    swyddogaeth validateEmail (id)
    {
    var emailPattern = /^0a-zA-Z9-0._-9+@DLE-zA-Z2,4-XNUMX.-XNUMX+.DLE-zA-ZXNUMXinneach$/;
    dychwelyd emailPattern.test (id);

    }
    Deepak Rai
    varanasi

  10. Diolch, ond mae gwall yn y regex hwn. Nid wyf yn arbenigwr regex, ond ceisiais e-bost:

    prawf @ prawf

    ac fe basiodd y regex ... sylwais ei fod yn brin o ddianc o'r "." felly dylai fod:

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

  11. Wel, gwiriad bras yn unig yw hwn ond nid 100% yn gywir, er enghraifft byddai hyn yn iawn john_doe. @ gmail.com nad yw mewn gwirionedd yn gyfeiriad e-bost dilys (ni chaniateir dot fel cymeriad olaf yn rhan leol e-bost).
    Hefyd byddai'n derbyn john…doe@gmail.com sydd hefyd yn annilys gan na all fod mwy nag un dot mewn dilyniant.

    Dyma ychydig o ddiffygion y sylwais arnynt ar yr olwg gyntaf.
    Nid yw fy mwriad yn basio dim ond tynnu sylw at hyn rhag ofn bod rhywun yn bwriadu defnyddio hwn fel gwiriad diogelwch - ddim yn ddigon diogel.

    I gael gwybodaeth am gyfeiriadau e-bost dilys, gwiriwch hyn: http://en.wikipedia.org/wiki/E-mail_address

  12. Deepak,

    A dweud y gwir, rwy’n credu bod angen i chi gymhwyso dihangfa ar gyfer y dot (“.”). Felly, dylai eich swyddogaeth fod, yn lle:

    swyddogaeth validateEmail (id)
    {
    var emailPattern = /^0a-zA-Z9-0._-9+@DLE-zA-Z2,4-XNUMX.-XNUMX+.DLE-zA-ZXNUMXinneach$/;
    dychwelyd emailPattern.test (id);

    }

    Fel arall, byddai'r dot yn golygu “unrhyw gymeriad”. Rwy'n credu bod angen dianc rhag cymeriadau arbennig o'r fath.

    Regards,

    Federico

  13. swyddogaeth validateEmail (fld) {
    gwall var = ””;
    var tfld = trim (fld.value); // gwerth y cae gyda gofod gwyn wedi'i docio
    var emailFilter = /^$^@XNUMX+@DLE^@.XNUMX+.DLE@@**ww$/;
    var illeChars = / [(),;: \ ”[]] /;

    os (fld.value == “Rhowch eich Cyfeiriad e-bost”) {

    error = “Rhowch eich cyfeiriad E-bost.n”;
    } arall os (! emailFilter.test (tfld)) {// profi e-bost ar gyfer cymeriadau anghyfreithlon

    error = “Rhowch gyfeiriad e-bost dilys.n”;
    } arall os (fld.value.match (illeChars)) {

    error = “Rhowch gyfeiriad e-bost dilys.n”;
    }
    gwall dychwelyd;
    }

  14. swyddogaeth validateEmail (fld) {
    gwall var = ””;
    var tfld = trim (fld.value); // gwerth y cae gyda gofod gwyn wedi'i docio
    var emailFilter = /^$^@XNUMX+@DLE^@.XNUMX+.DLE@@**ww$/;
    var illeChars = / [(),;: \ ”[]] /;

    os (fld.value == “Rhowch eich Cyfeiriad e-bost”) {

    error = “Rhowch eich cyfeiriad E-bost.n”;
    } arall os (! emailFilter.test (tfld)) {// profi e-bost ar gyfer cymeriadau anghyfreithlon

    error = “Rhowch gyfeiriad e-bost dilys.n”;
    } arall os (fld.value.match (illeChars)) {

    error = “Rhowch gyfeiriad e-bost dilys.n”;
    }
    gwall dychwelyd;
    }

  15. swyddogaeth validateEmail (fld) {
    gwall var = ””;
    var tfld = trim (fld.value); // gwerth y cae gyda gofod gwyn wedi'i docio
    var emailFilter = /^$^@XNUMX+@DLE^@.XNUMX+.DLE@@**ww$/;
    var illeChars = / [(),;: \ ”[]] /;

    os (fld.value == “Rhowch eich Cyfeiriad e-bost”) {

    error = “Rhowch eich cyfeiriad E-bost.n”;
    } arall os (! emailFilter.test (tfld)) {// profi e-bost ar gyfer cymeriadau anghyfreithlon

    error = “Rhowch gyfeiriad e-bost dilys.n”;
    } arall os (fld.value.match (illeChars)) {

    error = “Rhowch gyfeiriad e-bost dilys.n”;
    }
    gwall dychwelyd;
    }

  16. swyddogaeth validateEmail (fld) {
    gwall var = ””;
    var tfld = trim (fld.value); // gwerth y cae gyda gofod gwyn wedi'i docio
    var emailFilter = /^$^@XNUMX+@DLE^@.XNUMX+.DLE@@**ww$/;
    var illeChars = / [(),;: \ ”[]] /;

    os (fld.value == “Rhowch eich Cyfeiriad e-bost”) {

    error = “Rhowch eich cyfeiriad E-bost.n”;
    } arall os (! emailFilter.test (tfld)) {// profi e-bost ar gyfer cymeriadau anghyfreithlon

    error = “Rhowch gyfeiriad e-bost dilys.n”;
    } arall os (fld.value.match (illeChars)) {

    error = “Rhowch gyfeiriad e-bost dilys.n”;
    }
    gwall dychwelyd;
    }

Beth ydych chi'n feddwl?

Mae'r wefan hon yn defnyddio Akismet i leihau sbam. Dysgwch sut mae eich data sylwadau yn cael ei brosesu.

Erthyglau Perthnasol