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 i formi cù parechje indirizzi email, saria bonu per fà class="emailaddress". Sè vo avete a biblioteca prototype.js (http://www.prototypejs.org) inclusu nantu à a pagina pudete fà qualcosa cum'è questu:

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

  2. 5
  3. 7

    Mi piace l'idea, ma avissi esitatu à aduttà questa espressione regulare particulare senza descrizzione di quali indirizzi email legali ùn accetta micca è quali indirizzi illegali permette.

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

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

    A mo preferenza persunale hè di copre a maiò parte di i casi simplici è emette un avvisu per tuttu u restu invece di ricusà. Se Bob vole veramente sottumette bob@com.museum piuttostu chì bob@museum.com, perchè ùn lascià ?

    • 8

      Salutu Reg,

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

      Inoltre, ci hè di sicuru assai di più chì pò esse fattu sè vo vulete assicurà un indirizzu mail hè validu in cunfurmità cù u RFC.

      Ci hè uni pochi di motivi per ùn permette à qualcunu di inserisce un indirizzu email invalidu:
      1. Seranu ingaghjati à voi quandu l'email ch'elli s'aspittavanu ùn passanu micca - a priscinniri di s'ellu era o micca a vostra culpa l'indirizzu hè statu inseritu in modu incorrectu.
      2. Se com.museum era un duminiu validu è, per dì, Yahoo! l'hà operatu - ogni indirizzu email chì hà rimbalzatu avaria un impattu negativu nantu à a reputazione di a vostra cumpagnia per a spedizione di e-mail. Questu puderia guidà à tuttu u email di a vostra cumpagnia esse bluccatu.
      3. Se u vostru fornitore di serviziu di e-mail hà permessu di entre bob@com.museum, Pagherete ancu per ogni email mandatu à quellu indirizzu email finu à chì anu annullatu l'indirizzu per via di rimbalzi. Eviterebbe da qualsiasi ESP chì permetterebbe un indirizzu email invalidu cusì - sò solu piglià 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 modificatore finale /i ùn ci hè bisognu di indicà a gamma di maiuscule.
    – Ùn sò micca cunnoscu TLD cù numeri in questu.
    In una nota laterale, aghju permessu TLD cù finu à 6 caratteri; i novi arrivanu regularmente è ùn sapete mai (bene, somme futuri pò ancu avè numeri in questu, a so).

  6. 11

    Bonghjornu à tutti,

    Pruvate d'utilizà questu in una forma esistente in tempu reale, ma ùn pare micca esse validatu in tempu reale cum'è u vostru verificatore di forza di password ...

    O, sò solu cusì clueless, è ùn funziona micca per mè?

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

    Solu una piccula correzione: 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, qualsiasi TLD di lunghezza seria accettata (chì ùn hè micca intrinsecamente sbagliatu cum'è altri anu indicatu, ma s'ellu era l'intenzione l'espressione puderia esse accurtata).

  11. 18

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

  12. 19
  13. 20

    Questu hè un codice cortu per l'espressione email-

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

    }
    Deepak Rai
    varanasi

  14. 21
  15. 22
  16. 23

    Grazie, ma ci hè un errore in questa regex. Ùn sò micca un espertu di regex, ma aghju pruvatu à email:

    prova@test

    è hà passatu a regex ... Aghju nutatu chì manca di scappà u "." dunque 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 100% precisu, per esempiu, questu seria bè cù john_doe.@gmail.com chì in realtà ùn hè micca un indirizzu e-mail validu (u puntu ùn hè micca permessu cum'è un ultimu caratteru in a parte lucale di e-mail).
    Ancu accettà John...doe@gmail.com chì hè ancu invalidu postu chì ùn pò 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ì qualchissia hà pensatu à aduprà questu com'è verificazione di sicurezza - micca abbastanza sicura.

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

  19. 28

    Deepak,

    In verità, pensu chì avete bisognu di 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}$/;
    torna emailPattern.test (id);

    }

    Altrimenti, u puntu significaria "qualsiasi caratteru". Credu chì tali caratteri speciali deve esse scappatu.

    riguarda,

    Federico

  20. 29

    funzione validateEmail (fld) {
    var error="";
    var tfld = trim(fld.value); // valore di u campu cù spazi bianchi tagliati
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
    var illegalChars= /[(),;:\”[]]/ ;

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

    error = "Per piacè inserite u vostru indirizzu email.n";
    } else if (!emailFilter.test(tfld)) { //test email per caratteri illegali

    error = "Per piacè inserite un indirizzu email validu.n";
    } altru si (fld.value.match (illegalChars)) {

    error = "Per piacè inserite un indirizzu email validu.n";
    }
    errore di ritornu;
    }

  21. 30

    funzione validateEmail (fld) {
    var error="";
    var tfld = trim(fld.value); // valore di u campu cù spazi bianchi tagliati
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
    var illegalChars= /[(),;:\”[]]/ ;

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

    error = "Per piacè inserite u vostru indirizzu email.n";
    } else if (!emailFilter.test(tfld)) { //test email per caratteri illegali

    error = "Per piacè inserite un indirizzu email validu.n";
    } altru si (fld.value.match (illegalChars)) {

    error = "Per piacè inserite un indirizzu email validu.n";
    }
    errore di ritornu;
    }

  22. 31

    funzione validateEmail (fld) {
    var error="";
    var tfld = trim(fld.value); // valore di u campu cù spazi bianchi tagliati
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
    var illegalChars= /[(),;:\”[]]/ ;

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

    error = "Per piacè inserite u vostru indirizzu email.n";
    } else if (!emailFilter.test(tfld)) { //test email per caratteri illegali

    error = "Per piacè inserite un indirizzu email validu.n";
    } altru si (fld.value.match (illegalChars)) {

    error = "Per piacè inserite un indirizzu email validu.n";
    }
    errore di ritornu;
    }

  23. 32

    funzione validateEmail (fld) {
    var error="";
    var tfld = trim(fld.value); // valore di u campu cù spazi bianchi tagliati
    var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
    var illegalChars= /[(),;:\”[]]/ ;

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

    error = "Per piacè inserite u vostru indirizzu email.n";
    } else if (!emailFilter.test(tfld)) { //test email per caratteri illegali

    error = "Per piacè inserite un indirizzu email validu.n";
    } altru si (fld.value.match (illegalChars)) {

    error = "Per piacè 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.