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-postadressen soe it goed wêze om class = "emailaddress" te dwaan. As jo ​​de prototype.js-bibleteek hawwe (http://www.prototypejs.org) opnaam op 'e pagina kinne jo sa dwaan:

    var jildich = wier;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    $$ ('. e-postadres'). elk (funksje (e-post) {
    as (! filter.test (email.value)) {
    alert (? Jou in jildich e-postadres op?);
    email.focus;
    jildich = net wier;
    }
    });
    werom jildich;

  2. 5
  3. 7

    Ik fyn it idee leuk, mar ik soe wifelje om dizze bysûndere reguliere ekspresje oan te nimmen sûnder beskriuwing fan hokker juridyske e-postadressen it net aksepteart en hokker yllegale adressen it tastiet.

    Foar in foarbyld fan in reguliere ekspresje dy't in fatsoenlik wurk docht neist in útlis oer hokker gefallen it net behannelt, 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 ôf te wizen. As Bob echt wol yntsjinje bob@com.museum leaver as bob@museum.com, wêrom him net litte?

    • 8

      Hoi Reg,

      Jo kinne de Regex testen mei in Online Regex Tester.

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

      D'r binne in pear redenen om net ta te stean dat immen in unjildich e-postadres ynfiere:
      1. Se sille har argewaasje fan jo krije as de e-post dy't se ferwachte net trochkomt - ûnôfhinklik oft it jo skuld wie of net it adres ferkeard waard ynfierd.
      2. As com.museum in jildich domein wie en, lit ús sizze, Yahoo! eksploitearre it - elk e-postadres dat stuitere soe in negative ynfloed hawwe op de reputaasje fan jo bedriuw foar levering fan e-post. Dit kin liede ta it blokkearjen fan al jo e-post fan jo bedriuw.
      3. As jo ​​leveransier fan e-posttsjinsten jo tastie yn te gean bob@com.museum, Jo soene ek betelje foar elke e-post dy't nei dat e-postadres wurdt ferstjoerd oant se dat adres ôfmelden fanwegen bounces. Ik soe elke ESP fuortjaan dy't sa'n unjildich e-postadres tastean soe - se nimme gewoan jo jild!

      Betanke foar it stopjen!
      doug

  4. 9
  5. 10

    D'r is in folle ienfâldiger manier om de útdrukking te skriuwen:
    var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
    - Mei de definitive modifikaasje / i is d'r gjin ferlet oan te jaan oan it haadlettergebiet.
    - Ik wit neat fan TLD mei sifers deryn.
    Op in sydnota stean ik TLD tastean mei maksimaal 6 tekens; der komme regelmjittich nije oan en jo witte it noait (no, somme takomstigen kinne der sels nûmers yn hawwe, ik wit it).

  6. 11

    Hoi,

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

    Of, bin ik krekt dy idee, en it wurket net foar my?

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

    Gewoan in lytse korreksje: De reguliere ekspresje hat oan 'e ein in ekstra () +. It soe moatte lêze:

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

    Mei de earste soene elke lingte-TLD's wurde aksepteare (wat net yntinsyf ferkeard is lykas oaren hawwe oanjûn, mar as dat de bedoeling wie, koe de útdrukking koarter wurde).

  11. 18

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

  12. 19
  13. 20

    Dit is in koarte koade foar e-post ekspresje-

    funksje validateEmail (id)
    {
    var emailPattern = /^ [aa- ZA-Z0-9._- ]+@ [aa- zA-Z0-9.
    return emailPattern.test (id);

    }
    Deepak Rai
    varanasi

  14. 21
  15. 22
  16. 23

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

    test @ test

    en it passearde de regex ... Ik fernaam dat it ûntbrekt te ûntkommen oan 'e "." sa soe it moatte:

    /^([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% krekt, bygelyks soe dit goed wêze mei john_doe. @ gmail.com dat eins gjin jildich e-postadres is (stip is net tastien as lêste teken yn lokaal diel fan e-post).
    Ek soe it akseptearje john…doe@gmail.com dat is ek unjildich, om't d'r net mear dan ien punt yn in sekwinsje kin wêze.

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

    Kontrolearje dit foar ynfo oer jildige e-postadressen: http://en.wikipedia.org/wiki/E-mail_address

  19. 28

    Deepak,

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

    funksje validateEmail (id)
    {
    var emailPattern = /^ [aa- ZA-Z0-9._- ]+@ [aa- zA-Z0-9.
    return emailPattern.test (id);

    }

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

    Groetnis,

    Federico

  20. 29

    funksje validateEmail (fld) {
    var flater = ””;
    var tfld = trim (fld.wearde); // wearde fan fjild mei blank spaasje ôfset
    var emailFilter = /^ [^ @] + @ [^ @.] +. [^ @] *ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

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

    error = “Fier jo e-postadres yn. n”;
    } oars as (! emailFilter.test (tfld)) {// test-e-post foar yllegale tekens

    error = “Fier in jildich e-postadres yn. n”;
    } oars as (fld.value.match (illegalChars)) {

    error = “Fier in jildich e-postadres yn. n”;
    }
    weromflater;
    }

  21. 30

    funksje validateEmail (fld) {
    var flater = ””;
    var tfld = trim (fld.wearde); // wearde fan fjild mei blank spaasje ôfset
    var emailFilter = /^ [^ @] + @ [^ @.] +. [^ @] *ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

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

    error = “Fier jo e-postadres yn. n”;
    } oars as (! emailFilter.test (tfld)) {// test-e-post foar yllegale tekens

    error = “Fier in jildich e-postadres yn. n”;
    } oars as (fld.value.match (illegalChars)) {

    error = “Fier in jildich e-postadres yn. n”;
    }
    weromflater;
    }

  22. 31

    funksje validateEmail (fld) {
    var flater = ””;
    var tfld = trim (fld.wearde); // wearde fan fjild mei blank spaasje ôfset
    var emailFilter = /^ [^ @] + @ [^ @.] +. [^ @] *ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

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

    error = “Fier jo e-postadres yn. n”;
    } oars as (! emailFilter.test (tfld)) {// test-e-post foar yllegale tekens

    error = “Fier in jildich e-postadres yn. n”;
    } oars as (fld.value.match (illegalChars)) {

    error = “Fier in jildich e-postadres yn. n”;
    }
    weromflater;
    }

  23. 32

    funksje validateEmail (fld) {
    var flater = ””;
    var tfld = trim (fld.wearde); // wearde fan fjild mei blank spaasje ôfset
    var emailFilter = /^ [^ @] + @ [^ @.] +. [^ @] *ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

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

    error = “Fier jo e-postadres yn. n”;
    } oars as (! emailFilter.test (tfld)) {// test-e-post foar yllegale tekens

    error = “Fier in jildich e-postadres yn. n”;
    } oars as (fld.value.match (illegalChars)) {

    error = “Fier in jildich e-postadres yn. n”;
    }
    weromflater;
    }

  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.