Kontrolearje e-postadres mei JavaScript en reguliere ekspresjes

In skoft lyn sette ik in Strength Checker foar wachtwurden mei JavaScript en reguliere ekspresjes, Op deselde nota kinne jo ek de struktuer fan in e-postadres kontrolearje mei deselde metoade foar reguliere ekspresje (regex).

As jo ​​formulierelemint de hat id = ”e-postadres” en jo foegje in formulier ta onSubmit = ”return checkEmail ();“, Dit is in Javascript-funksje dy't jo kinne brûke om in warskôging werom te jaan as it e-postadres in jildige struktuer hat as net:

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

De funksje valideart de ynhâld fan 'e e-post nei dy fan it filter. As de fergeliking mislearret, ferskynt it in warskôging en jout de fokus werom nei it e-postadresfjild!

41 Comments

  1. 1

    Foar formulieren mei meardere e-mailadressen soe it goed wêze om class="emailaddress" te dwaan. As jo ​​​​de bibleteek prototype.js (http://www.prototypejs.org) opnommen op 'e side kinne jo sa'n ding dwaan:

    var valid = wier;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    $$('.emailaddress').each(function(email) {
    if (!filter.test(email.value)) {
    alert(? Jou asjebleaft in jildich e-postadres?);
    email.focus;
    jildich = falsk;
    }
    });
    return jildich;

  2. 5
  3. 7

    Ik fyn it idee leuk, mar ik soe twifelje om dizze bepaalde reguliere útdrukking oan te nimmen sûnder beskriuwing fan hokker juridyske e-mailadressen it net akseptearret en hokker yllegale adressen it tastiet.

    Foar in foarbyld fan in reguliere útdrukking dy't in fatsoenlik wurk docht neist in útlis fan hokker gefallen it net dekt, sjoch dit:

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

    Myn persoanlike foarkar is om de measte ienfâldige gefallen te dekken en in warskôging út te jaan foar al it oare ynstee fan it ôfwizen. As Bob echt wol sto yntsjinje bob@com.museum leaver as bob@museum.com, wêrom net lit him?

    • 8

      Hoi Reg,

      Jo kinne de Regex testje mei in Online Regex Tester.

      Ek, der is grif folle mear dat kin dien wurde as jo wolle soargje foar in e-postadres is jildich yn oerienstimming mei de RFC.

      D'r binne in pear redenen om ien net ta te stean om in ûnjildich e-postadres yn te fieren:
      1. Se sille har argewaasje op jo krije as de e-post dy't se ferwachte hawwe net trochkomt - nettsjinsteande oft it jo skuld wie of net dat it adres ferkeard ynfierd is.
      2. As com.museum in jildich domein wie en, lit ús sizze, Yahoo! operearre it - elk e-mailadres dat bounced soe in negative ynfloed hawwe op 'e reputaasje fan jo bedriuw foar e-postlevering. Dit kin liede ta it blokkearjen fan alle e-post fan jo bedriuw.
      3. As jo ​​e-post tsjinst provider tastien jo yn te gean bob@com.museum, jo soene ek betelje foar elke e-post dy't nei dat e-mailadres stjoerd wurdt oant se dat adres útmelde fanwegen bounces. Ik soe fuortgean fan elke ESP dy't sa'n ûnjildich e-postadres soe tastean - se nimme gewoan jo jild!

      Betanke foar it stopjen!
      doug

  4. 9
  5. 10

    D'r is folle ienfâldiger manier om de útdrukking te skriuwen:
    var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
    – Mei de lêste modifier /i hoecht it berik foar haadletters net oan te jaan.
    – Ik wit der neat fan TLD mei nûmers deryn.
    Oan 'e kant lit ik TLD ta mei maksimaal 6 tekens; nije komme geregeldwei en do nea witte (well, somme takomstige kin sels hawwe nûmers yn it, ik wit it).

  6. 11

    Hoi,

    Ik besykje dit te brûken yn in besteande foarm yn real-time, mar dit liket net yn realtime te falidearjen lykas jo wachtwurdsterktekontrôler ...

    Of bin ik gewoan sa ûnsin, en wurket it net foar my?

  7. 12
  8. 13
  9. 16
  10. 17

    Krekt in lytse korreksje: De reguliere útdrukking hat in ekstra ()+ oan 'e ein. It moat lêze:

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

    Mei de earste soe elke lingte TLD's wurde aksepteare (wat net yntrinsysk ferkeard is lykas oaren hawwe oanjûn, mar as dat de bedoeling wie soe de útdrukking ynkoarte wurde kinne).

  11. 18

    Kinne jo asjebleaft de reguliere útdrukking fan dizze koade útlizze en hoe't it wurket? Ek oer .test - Is .test in standert statement yn javascript om dingen te kontrolearjen lykas jo dien hawwe yn 'e koade hjirboppe?

  12. 19

    Dit is in koarte koade foar e-postekspresje-

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

    }
    Deepak Rai
    varanasi

  13. 20

    Dit is in koarte koade foar e-postekspresje-

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

    }
    Deepak Rai
    varanasi

  14. 21
  15. 22
  16. 23

    Tankewol, mar d'r is in flater yn dizze regex. Ik bin gjin regex-ekspert, mar ik haw e-post besocht:

    test@test

    en it gie troch de regex ... Ik fernaam dat it ûntbrekt oan 'e "." dus moat it wêze:

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

  17. 24
  18. 27

    No, dit is gewoan in rûge kontrôle, mar net 100% akkuraat, dit soe bygelyks goed wêze mei john_doe.@gmail.com dat is eins gjin jildich e-mailadres (dot is net tastien as in lêste karakter yn lokale diel fan e-mail).
    Ek soe it akseptearje john…doe@gmail.com wat ek ûnjildich is, om't d'r net mear as ien stip yn in sekwinsje wêze kin.

    Dit binne gewoan wat gebreken dy't ik op it earste gesicht opmurken.
    Myn bedoeling is net bashing gewoan om dit op te wizen yn gefal immen fan plan is dit te brûken as in feiligenskontrôle - net feilich genôch.

    Foar ynformaasje oer jildige e-mailadressen kontrolearje dit: http://en.wikipedia.org/wiki/E-mail_address

  19. 28

    Deepak,

    Eins tink ik dat jo in ûntsnapping moatte tapasse foar de stip ("."). Dus, jo funksje moat wêze, ynstee:

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

    }

    Oars soe de stip "elk karakter" betsjutte. Ik leau dat sokke spesjale karakters ûntkommen wurde moatte.

    Groetnis,

    Federico

  20. 29

    function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value); // wearde fan fjild mei wite romte ôfsnien
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
    var illegalChars= /[(),;:\”[]]/ ;

    if (fld.value == "Fier jo e-postadres yn") {

    error = "Fier jo e-postadres yn.n";
    } else if (!emailFilter.test(tfld)) {//test e-post foar yllegale tekens

    error = "Fier in jildich e-postadres yn.n";
    } else if (fld.value.match(illegalChars)) {

    error = "Fier in jildich e-postadres yn.n";
    }
    return flater;
    }

  21. 30

    function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value); // wearde fan fjild mei wite romte ôfsnien
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
    var illegalChars= /[(),;:\”[]]/ ;

    if (fld.value == "Fier jo e-postadres yn") {

    error = "Fier jo e-postadres yn.n";
    } else if (!emailFilter.test(tfld)) {//test e-post foar yllegale tekens

    error = "Fier in jildich e-postadres yn.n";
    } else if (fld.value.match(illegalChars)) {

    error = "Fier in jildich e-postadres yn.n";
    }
    return flater;
    }

  22. 31

    function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value); // wearde fan fjild mei wite romte ôfsnien
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
    var illegalChars= /[(),;:\”[]]/ ;

    if (fld.value == "Fier jo e-postadres yn") {

    error = "Fier jo e-postadres yn.n";
    } else if (!emailFilter.test(tfld)) {//test e-post foar yllegale tekens

    error = "Fier in jildich e-postadres yn.n";
    } else if (fld.value.match(illegalChars)) {

    error = "Fier in jildich e-postadres yn.n";
    }
    return flater;
    }

  23. 32

    function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value); // wearde fan fjild mei wite romte ôfsnien
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
    var illegalChars= /[(),;:\”[]]/ ;

    if (fld.value == "Fier jo e-postadres yn") {

    error = "Fier jo e-postadres yn.n";
    } else if (!emailFilter.test(tfld)) {//test e-post foar yllegale tekens

    error = "Fier in jildich e-postadres yn.n";
    } else if (fld.value.match(illegalChars)) {

    error = "Fier in jildich e-postadres yn.n";
    }
    return flater;
    }

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

Wat tinksto?

Dizze side brûkt Akismet om spam te ferleegjen. Learje hoe't jo kommentaargegevens ferwurke wurde.