Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Javascript Controllo campo email (e-mail)

    Ciao a tutti,
    vorrei inserire un controllo sul campo di input per un indirizzo e-mail.

    Il problema è dato dal fatto che questo indirizzo e-mail può indicare uno o + destinatari.

    Normalmente utilizzo il seguente controllo per verificare un singolo indirizzo tipo nome@yahoo.it

    ecco la RegExp:
    if (!field.value.match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})
    errore

    Questo controllo funziona per il check di un'e-mail ma se nel campo sono presenti 2 indirizzi e-mail come posso fare?

    Grazie a tutti

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    ipotizzando di separare le varie email con uno o più spazi:

    codice:
    re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})(\s+([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4}))*$/
    
    if (!field.value.match(re)) { ....
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Grazie per la sollecita risposta.

    Nel form però non sò quanti indirizzi e-mail possano indicare nel campo di input
    separato da un ';'


    Ad esempio:
    nome@yahoo.it (indicano un solo nome)

    oppure

    nome@yahoo.it;nome2@yahoo.it (indicano due nome)

    Opuure ancora
    nome@yahoo.it;nome2@yahoo.it;nome3@yahoo.it

  4. #4
    Non sono esperto di regex quindi non mi pronuncio in tal senso, pero' se sei sicuro che i campi siano separati da punto e virgola potresti fare uno split della stringa e poi verificare indirizzo per indirizzo

  5. #5
    Ok thanks.
    Non sono esperto di javascript avresti un esempio di come leggere una split?
    Ho provato in questo modo ma non credo sia quello corretto..



    </script>

    function check_email(field) {
    var strMail = field.value; // Salvo la stringa di input
    var splitMail = strMail.split(";"); // Indico lo split

    for (i in splitMail) {
    if (!splitMail.match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})$/)){
    alert('Errore di formato:');
    return false;
    }
    else
    return true;
    }

    }

    </script>

  6. #6
    a occhio l'errore e' nel for

    fai il classico for

    codice:
    for(i=0; i<splitMail.length; i++)
    {
        if (!splitMail[i].match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})$/)){
        alert('Errore di formato:');
        return false;
    }
    PS in questo modo se ci sono tre errori ti da tre alert. Forse e' meglio che con un OR gestisci meglio la cosa

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.