Athugaðu netfangið með JavaScript og reglulegu segð

Fyrir stuttu setti ég upp a Styrktaraðili lykilorðs með JavaScript og reglulegu segð. Á sömu nótum er einnig hægt að athuga uppbyggingu netfangsins með sömu reglulegu segð (regex) aðferðafræði.

Ef formþátturinn þinn hefur id = ”netfang“ og þú bætir við eyðublaði onSubmit = ”return checkEmail ();“, Þetta er Javascript aðgerð sem þú getur notað til að skila viðvörun ef netfangið hefur gilda uppbyggingu eða ekki:

function checkEmail() {
var email = document.getElementById('emailaddress');
var filter = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
if (!filter.test(email.value)) {
alert('Please provide a valid email address');
email.focus;
return false;
}
}

Aðgerðin staðfestir innihald tölvupóstsins við það sem er í síunni. Ef samanburðurinn misheppnast birtist hann viðvörun og skilar fókusinum aftur á netfangareitinn!

41 Comments

  1. 1

    Fyrir eyðublöð með mörg netföng væri gott að gera class = “emailaddress”. Ef þú ert með prototype.js bókasafnið (http://www.prototypejs.org) innifalinn á síðunni geturðu gert eitthvað á þessa leið:

    var gildur = satt;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    $$ ('. netfangið'). hver (aðgerð (netfang) {
    ef (! filter.test (email.value)) {
    viðvörun (? Vinsamlegast gefðu upp gilt netfang?);
    netfang.fókus;
    gild = ósatt;
    }
    });
    skila gildi;

  2. 5
  3. 7

    Mér líst vel á hugmyndina en ég myndi hika við að taka upp þessa tilteknu reglulegu tjáningu án þess að lýsa hvaða löglegu netföng hún samþykkir ekki og hvaða ólöglegu heimilisföng hún leyfir.

    Fyrir dæmi um reglulega tjáningu sem sinnir ágætis starfi samhliða skýringu á tilvikum sem það nær ekki til, sjáðu þetta:

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

    Persónulegur kostur minn er að fjalla um flest einföld mál og gefa viðvörun fyrir öllu öðru frekar en að hafna því. Ef Bob vill virkilega leggja fram bob@com.museum í stað þess að bob@museum.com, af hverju ekki láta hann?

    • 8

      Hæ Reg,

      Þú getur prófað Regex með því að nota Regex prófari á netinu.

      Einnig er örugglega margt fleira sem hægt er að gera ef þú vilt tryggja netfang gildir í samræmi við RFC.

      Það eru nokkrar ástæður fyrir því að leyfa ekki einhver að slá inn ógilt netfang:
      1. Þeir verða pirraðir á þér þegar tölvupósturinn sem þeir bjuggust við kemst ekki í gegn - án tillits til þess hvort það var þér að kenna eða heimilisfangið var slegið rangt inn.
      2. Ef com.museum var gilt lén og við skulum segja, Yahoo! stjórnaði því - hvaða netfang sem hoppaði hefði neikvæð áhrif á orðspor fyrirtækisins fyrir afhendingu tölvupósts. Þetta gæti leitt til þess að öllum tölvupósti fyrirtækisins þíns verði lokað.
      3. Ef netþjónustuveitan þín leyfði þér að komast inn bob@com.museum, myndir þú líka greiða fyrir hvert netfang sem sent er á það netfang þar til þeir segja upp áskriftinni vegna hoppa. Ég myndi forðast ESP sem leyfir ógilt netfang svona - þeir taka bara peningana þína!

      Takk fyrir að hætta við!
      Doug

  4. 9
  5. 10

    Það er miklu einfaldari leið til að skrifa orðatiltækið:
    var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
    - Með lokabreytingunni / i er engin þörf á að gefa til kynna hástöfum.
    - Ég veit ekki um neina Þjóðarlén með tölur í.
    Til hliðar leyfi ég TLD með allt að 6 bleikjum; nýjar koma reglulega og þú veist aldrei (ja, sumar framtíðarmenn geta jafnvel haft tölur í því, ég veit).

  6. 11

    Hi there,

    Ég ætla að nota þetta í núverandi mynd í rauntíma, en þetta virðist ekki vera fullgilt í rauntíma eins og lykilorðsstyrkurinn þinn ...

    Eða er ég bara svona ráðalaus og virkar það ekki fyrir mig?

  7. 12

    btw, mér líkar mjög það sem þú ert að fara hérna, námskeiðin þín eru mjög einföld, ég mun örugglega setja bókamerki við þessa ....

  8. 13
  9. 16
  10. 17

    Bara lítil leiðrétting: Regluleg segð hefur aukalega () + í lokin. Það ætti að vera:

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

    Með þeirri fyrstu yrði tekið við hvaða lengdartölvum sem er (sem er ekki í sjálfu sér rangt eins og aðrir hafa bent á, en ef það var ætlunin mætti ​​stytta tjáninguna).

  11. 18

    Geturðu vinsamlegast útskýrt reglulega tjáningu þessa kóða og hvernig hún virkar? Einnig um .test - Er .test sjálfgefin yfirlýsing í javascript til að athuga hluti eins og þú gerðir í kóðanum hér að ofan?

  12. 19

    Þetta er stuttur kóði til að tjá tölvupóst -

    virka validateEmail (id)
    {
    var emailPattern = /^ [aa-ZA-Z0-9._- ]+@ [aa-zA-Z0-9.- ]+. [aa-zA-Z] {2,4} $ /;
    skila tölvupóstiPattern.test (id);

    }
    Deepak Rai
    varanasi

  13. 20

    Þetta er stuttur kóði til að tjá tölvupóst -

    virka validateEmail (id)
    {
    var emailPattern = /^ [aa-ZA-Z0-9._- ]+@ [aa-zA-Z0-9.- ]+. [aa-zA-Z] {2,4} $ /;
    skila tölvupóstiPattern.test (id);

    }
    Deepak Rai
    varanasi

  14. 21
  15. 22
  16. 23

    Takk, en það er villa í þessari regex. Ég er ekki regex sérfræðingur en ég prófaði tölvupóst:

    próf @ próf

    og það fór framhjá regex ... ég tók eftir því að það vantar að sleppa við "." svo það ætti að vera:

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

  17. 24
  18. 27

    Jæja, þetta er bara gróf athugun en ekki 100% nákvæm, til dæmis væri þetta í lagi með john_doe. @ gmail.com sem er í raun ekki gilt netfang (punktur er ekki leyfður sem síðasti stafurinn í staðbundnum hluta tölvupóstsins).
    Einnig myndi það samþykkja john…doe@gmail.com sem er einnig ógilt þar sem það geta ekki verið fleiri en einn punktur í röð.

    Þetta eru bara nokkrir gallar sem ég tók eftir við fyrstu sýn.
    Ætlun mín er ekki að þvælast aðeins fyrir því að benda á þetta ef einhver ætlar að nota þetta sem öryggisskoðun - ekki nógu örugg.

    Fyrir upplýsingar um gild netföng, skoðaðu þetta: http://en.wikipedia.org/wiki/E-mail_address

  19. 28

    Deepak,

    Reyndar held ég að þú þurfir að beita flótta fyrir punktinn (“.”). Svo, aðgerð þín ætti að vera, í staðinn:

    virka validateEmail (id)
    {
    var emailPattern = /^ [aa-ZA-Z0-9._- ]+@ [aa-zA-Z0-9.- ]+. [aa-zA-Z] {2,4} $ /;
    skila tölvupóstiPattern.test (id);

    }

    Annars þýðir punkturinn „hvaða persóna sem er“. Ég tel að slíta þurfi við svona sérstafi.

    kveðjur,

    Federico

  20. 29

    virka validateEmail (fld) {
    var villa = ””;
    var tfld = snyrta (fld.value); // gildi reits með hvítu bili klippt af
    var emailFilter = /^ [^ @] + @ [^^.] +. [^ @] *ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

    ef (fld.value == “Sláðu inn netfangið þitt”) {

    error = “Vinsamlegast sláðu inn netfangið þitt.n”;
    } annað ef (! emailFilter.test (tfld)) {// próf tölvupóst fyrir ólöglega stafi

    error = “Vinsamlegast sláðu inn gilt netfang.n”;
    } annað ef (fld.value.match (illegalChars)) {

    error = “Vinsamlegast sláðu inn gilt netfang.n”;
    }
    skila villu;
    }

  21. 30

    virka validateEmail (fld) {
    var villa = ””;
    var tfld = snyrta (fld.value); // gildi reits með hvítu bili klippt af
    var emailFilter = /^ [^ @] + @ [^^.] +. [^ @] *ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

    ef (fld.value == “Sláðu inn netfangið þitt”) {

    error = “Vinsamlegast sláðu inn netfangið þitt.n”;
    } annað ef (! emailFilter.test (tfld)) {// próf tölvupóst fyrir ólöglega stafi

    error = “Vinsamlegast sláðu inn gilt netfang.n”;
    } annað ef (fld.value.match (illegalChars)) {

    error = “Vinsamlegast sláðu inn gilt netfang.n”;
    }
    skila villu;
    }

  22. 31

    virka validateEmail (fld) {
    var villa = ””;
    var tfld = snyrta (fld.value); // gildi reits með hvítu bili klippt af
    var emailFilter = /^ [^ @] + @ [^^.] +. [^ @] *ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

    ef (fld.value == “Sláðu inn netfangið þitt”) {

    error = “Vinsamlegast sláðu inn netfangið þitt.n”;
    } annað ef (! emailFilter.test (tfld)) {// próf tölvupóst fyrir ólöglega stafi

    error = “Vinsamlegast sláðu inn gilt netfang.n”;
    } annað ef (fld.value.match (illegalChars)) {

    error = “Vinsamlegast sláðu inn gilt netfang.n”;
    }
    skila villu;
    }

  23. 32

    virka validateEmail (fld) {
    var villa = ””;
    var tfld = snyrta (fld.value); // gildi reits með hvítu bili klippt af
    var emailFilter = /^ [^ @] + @ [^^.] +. [^ @] *ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

    ef (fld.value == “Sláðu inn netfangið þitt”) {

    error = “Vinsamlegast sláðu inn netfangið þitt.n”;
    } annað ef (! emailFilter.test (tfld)) {// próf tölvupóst fyrir ólöglega stafi

    error = “Vinsamlegast sláðu inn gilt netfang.n”;
    } annað ef (fld.value.match (illegalChars)) {

    error = “Vinsamlegast sláðu inn gilt netfang.n”;
    }
    skila villu;
    }

  24. 33
  25. 34
  26. 35
  27. 36
  28. 37
  29. 38
  30. 39
  31. 40

Hvað finnst þér?

Þessi síða notar Akismet til að draga úr ruslpósti. Lærðu hvernig ummæli þín eru unnin.