Corsi on-line

Validazione di email con HTML5 e le espressioni regolari

Esistono numerosi metodi per la validazione di un indirizzo di posta elettronica inviato come parametro da un form; in JavaScript potremmo utilizzare per esempio una funzione sul modello della seguente che ha il compito di verificare se il contenuto di una stringa corrisponde a quello generalmente presente in un’email, ciò significa che l’input sottoposto a controllo dovrà contenere il simbolo della “@” (che però non dovrà essere il carattere iniziale della sequenza), un “.” (che non dovrà trovarsi subito dopo la “@”) e almeno due caratteri dopo il “.” e prima della fine. Ecco il codice:

function ctrlForm()
 {
 var em=document.forms["nomeForm"]["email"].value;
 var atpos=em.indexOf("@");
 var dotpos=em.lastIndexOf(".");
 if (atpos<1 || dotpos<atpos+2 || dotpos+2>=em.length)
   {
   alert("Indirizzo email non valido");
   return false;
   }
 }

Naturalmente l’utilizzo di soluzioni unicamente Client Side per la validazione dei parametri di input (indipendentemente dal fatto che si tratti di un indirizzo email o meno) non rappresenta una soluzione altrettanto efficace rispetto a quelle basate su linguaggi Server Side, per cui qualsiasi critica riferita ad un approccio del genere non potrebbe che essere condivisibile.

Logo HTML5

HTML5 ha comunque introdotto una nuova metodologia lato browser per le verifiche di validità a carico delle email, essa prevede l’utilizzo di espressioni regolari; a tal proposito si analizzi il seguente markup:

<input type="text" title="email" required pattern="[^@]+@[^@]+\.[a-zA-Z]{2,6}" />

required è nello specifico un attributo di tipo booleano che ha il compito di rendere obbligatoria la compilazione dell’elemento a cui è associato; il valore dell’attributo pattern deve essere invece una espressione regolare corretta, esso necessita anche dell’indicazione di un title che fornisca una descrizione del formato in uso (“email nel nostro esempio”). La verifica della condizione richiesta verrà valutata in seguito all’invio dei dati del form tramite submit.

Post correlati
I più letti del mese
Tematiche