Verificate l'indirizzu email cù JavaScript è spressione regulare

Tempi fà aghju messu un Verificatore di Forza di Password cù JavaScript è Espressioni Regulari. In a listessa nota, pudete ancu verificà a struttura di un indirizzu email cù a stessa metodulugia di espressione regulare (regex).

Se u vostru elementu di forma hà u id = "indirizzu email" è aghjunghje una forma onSubmit = "return checkEmail ();", Questa hè una funzione Javascript chì pudete aduprà per restituisce una alerta se l'indirizzu email hà una struttura valida o micca:

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 funzione cunvalida u cuntenutu di l'email à quellu di u filtru. Se u paragone fiasca, vene una alerta è torna u focu in u campu di l'indirizzu email!

41 Comments

  1. 1

    Per e forme cù più indirizzi email, seria bè di fà class = "emailaddress". Se avete a libreria prototype.js (http://www.prototypejs.org) Inclusu nantu à a pagina pudete fà qualcosa cusì:

    var validu = veru;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    $$ ('. emailaddress'). ognunu (funzione (email) {
    if (! filter.test (email.value)) {
    alerta (? Per piacè furnite un indirizzu email validu?);
    email.focus;
    validu = falsu;
    }
    });
    ritornu validu;

  2. 5
  3. 7

    Mi piace l'idea, ma serebbe esitante à aduttà sta spressione regulare particulare senza descrizzione di l'indirizzi di e-mail legali chì ùn accetta micca è di l'indirizzi illegali chì permette.

    Per un esempiu di una espressione regulare chì face un travagliu decente à fiancu à una spiegazione di quali casi ùn copre micca, vedi questu:

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

    A mo preferenza persunale hè di copre a maiò parte di i casi semplici è di emette un avvertimentu per tuttu u restu piuttostu chè di rifiutallu. Se Bob vole veramente sottumette bob@com.museum piuttostu chì bob@museum.com, perchè ùn lasciarlu micca?

    • 8

      Salutu Reg,

      Pudete pruvà u Regex aduprendu un Tester Regex in linea.

      Inoltre, ci hè sicuramente assai di più chì si pò fà se vulete assicurà un indirizzu mail hè validu in cunfurmità cù a RFC.

      Ci sò uni pochi di ragioni per ùn permette micca à qualcunu di inserisce un indirizzu email invalidu:
      1. Seranu fastidiosi per voi quandu l'email ch'elli aspettavanu ùn passa - indipendentemente da sì hè stata colpa vostra o micca l'indirizzu hè statu inseritu in modu incorrettu.
      2. Sì com.museum era un duminiu validu è, dicemu, Yahoo! l'hà operatu - qualsiasi indirizzu email chì hà saltatu averebbe un impattu negativu annantu à a reputazione di a vostra cumpagnia per a consegna di e-mail. Questu puderebbe purtà à bluccà tutte e mail di a vostra cumpagnia.
      3. Se u vostru fornitore di servizii email ti hà permessu di entre bob@com.museum, avaristi ancu pagatu per ogni email mandatu à quellu indirizzu email finu à ch'elli anu annullatu l'abbunamentu per via di rimbalzi. Averaghju alluntanatu ogni ESP chì permetterebbe un indirizzu email invalidu cusì - stanu solu pigliendu i vostri soldi!

      Ti ringraziu per piantà!
      Steven

  4. 9
  5. 10

    Ci hè un modu assai più simplice per scrive l'espressione:
    var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
    - Cù u mudificatore finale / i ùn ci hè bisognu di indicà a gamma maiuscola.
    - Ùn ne cunnoscu TLD cù numeri in ellu.
    In una nota laterale, aghju permessu TLD cun fino à 6 caratteri; i novi arrivanu di modu regulare è ùn si sà mai (bè, certi futuri pò ancu avè numeri in questu, a so).

  6. 11

    Bonghjornu à tutti,

    Sò in tring à aduprà questu in una forma esistente in tempu reale, ma questu ùn sembra micca validà in tempu reale cum'è u vostru verificatore di forza di password ...

    O, sò solu quellu sbanditu, è ùn funziona micca per mè?

  7. 12

    btw, mi piace assai ciò chì avete succedendu quì, i vostri tutoriali sò assai semplici, definisceraghju definitivamente questu segnalibru ....

  8. 13
  9. 16
  10. 17

    Solu una piccula currezzione: L'espressione regulare hà un extra () + à a fine. Si deve leghje:

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

    Cù u primu ogni TLD di lunghezza seria accettata (ciò chì ùn hè micca intrinsecamente sbagliatu cum'è l'altri l'anu signalatu, ma se quella era l'intenzione l'espressione puderia esse accurtata).

  11. 18

    Pudete spiegà per piacè l'espressione regulare di stu codice è cumu funziona? Ancu nantu à .test - Hè .test una dichjarazione predefinita in javascript per verificà cose cum'è avete fattu in u codice sopra?

  12. 19

    Questu hè un breve codice per l'espressione di e-mail-

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

    }
    Deepak Rai
    varanasi

  13. 20

    Questu hè un breve codice per l'espressione di e-mail-

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

    }
    Deepak Rai
    varanasi

  14. 21
  15. 22
  16. 23

    Grazie, ma ci hè un errore in questu regiu. Ùn sò micca un espertu regiu, ma aghju provatu email:

    prova @ prova

    è hà passatu u regiu ... Aghju nutatu chì mancava di fughje u "." cusì deve esse:

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

  17. 24
  18. 27

    Ebbè, questu hè solu un cuntrollu grossu ma micca precisu à 100%, per esempiu questu seria bè john_doe. @ gmail.com chì in realtà ùn hè micca un indirizzu e-mail validu (u puntu ùn hè micca permessu cum'è ultimu caratteru in a parte lucale di e-mail).
    Inoltre accettaria john…doe@gmail.com chì hè ancu invalidu postu chì ùn pò micca esse più di un puntu in una sequenza.

    Quessi sò solu qualchi difetti chì aghju nutatu à a prima vista.
    A mo intenzione ùn hè micca bashing solu per indicà questu in casu chì qualcunu hà intenzione di aduprà questu cum'è un cuntrollu di sicurezza - micca abbastanza sicuru.

    Per infurmazione nantu à l'indirizzi e-mail validi verificate questu: http://en.wikipedia.org/wiki/E-mail_address

  19. 28

    Deepak,

    In verità, pensu chì duvete applicà una fuga per u puntu ("."). Dunque, a vostra funzione deve esse, invece:

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

    }

    Inutili, u puntu significaria "qualsiasi caratteru". Credu chì tali caratteri speciali anu da esse scappati.

    riguarda,

    Federico

  20. 29

    funzione validateEmail (fld) {
    var errore = "";
    var tfld = trim (valore fld.); // valore di u campu cù u spaziu biancu tagliatu
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

    if (fld.value == "Inserite u vostru Indirizzu email") {

    error = "Inserite u vostru indirizzu email.n";
    } altru sì (! emailFilter.test (tfld)) {// pruvà e-mail per caratteri illegali

    error = "Inserite un indirizzu email validu.n";
    } altru sì (fld.value.match (illegalChars)) {

    error = "Inserite un indirizzu email validu.n";
    }
    errore di ritornu;
    }

  21. 30

    funzione validateEmail (fld) {
    var errore = "";
    var tfld = trim (valore fld.); // valore di u campu cù u spaziu biancu tagliatu
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

    if (fld.value == "Inserite u vostru Indirizzu email") {

    error = "Inserite u vostru indirizzu email.n";
    } altru sì (! emailFilter.test (tfld)) {// pruvà e-mail per caratteri illegali

    error = "Inserite un indirizzu email validu.n";
    } altru sì (fld.value.match (illegalChars)) {

    error = "Inserite un indirizzu email validu.n";
    }
    errore di ritornu;
    }

  22. 31

    funzione validateEmail (fld) {
    var errore = "";
    var tfld = trim (valore fld.); // valore di u campu cù u spaziu biancu tagliatu
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

    if (fld.value == "Inserite u vostru Indirizzu email") {

    error = "Inserite u vostru indirizzu email.n";
    } altru sì (! emailFilter.test (tfld)) {// pruvà e-mail per caratteri illegali

    error = "Inserite un indirizzu email validu.n";
    } altru sì (fld.value.match (illegalChars)) {

    error = "Inserite un indirizzu email validu.n";
    }
    errore di ritornu;
    }

  23. 32

    funzione validateEmail (fld) {
    var errore = "";
    var tfld = trim (valore fld.); // valore di u campu cù u spaziu biancu tagliatu
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/;
    var illegalChars = / [(),;: \ ”[]] /;

    if (fld.value == "Inserite u vostru Indirizzu email") {

    error = "Inserite u vostru indirizzu email.n";
    } altru sì (! emailFilter.test (tfld)) {// pruvà e-mail per caratteri illegali

    error = "Inserite un indirizzu email validu.n";
    } altru sì (fld.value.match (illegalChars)) {

    error = "Inserite un indirizzu email validu.n";
    }
    errore di ritornu;
    }

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

Chì ne pensi?

Stu situ utilizeghja Akismet per reducisce u puzzicheghju. Sapete ciò chì i dati di i vostri dati è processatu.