Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicit� Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Convalidare indirizzi e-mail con le espressioni regolari
Scritto da Andrea Chiarelli il 17-06-2011 ore 10:52
Intel System Studio
Uno dei primi esercizi che vengono eseguiti quando si impara l'uso delle espressioni regolari la convalida di un indirizzo di posta elettronica. Lo schema apparentemente abbastanza semplice: una sequenza alfanumerica seguita dal simbolo @ e che prosegue con un'altra sequenza alfanumerica che rappresenta un dominio valido. Una semplice espressione regolare, che descrive lo schema di un indirizzo di e-mail, la seguente:
  1. ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
Questa espressione accetta indirizzi della forma nome.cognome@miodominio.com, ma accetta anche indirizzi di e-mail improbabili, come nome.cognome@dominio.qualsiasiestensione o anche a@b.c, mentre non accetta indirizzi validi come nome$@dominio.com. Un'espressione regolare con un maggiore grado di affidabilit dovrebbe essere un po' pi complessa e prendere in considerazione tutte le combinazioni di caratteri previsti dalla relativa specifica, la RFC 822.

La sezione Email di RegExLib.com presenta diverse soluzioni per convalidare, con espressioni regolari, i pi disparati modi di specificare un indirizzo di posta elettronica. Ad esempio, la seguente espressione un po' pi fiscale di quella vista prima, in quanto non accetta indirizzi come a@b.c mentre accetta nome$@dominio.com.
  1. ^(([^<>()[\]\\.,;:\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,}))$
Nel caso si abbia necessit di convalidare una lista di indirizzi separati da virgole o punti e virgole, potremmo affidarci a una espressione del genere:
  1. ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*([,;]\s*\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)*$
Se vogliamo invece gestire la visualizzazione di un nome a fianco all'e-mail, come in "Nome Cognome" <nome.cognome@dominio.com>, possiamo ricorrere alla seguente espressione regolare:

5841919886_68821686e2_b.jpg

Il record di complessit detenuto per dall'implementazione di Mail::RFC822::Address, un modulo Perl per la convalida di e-mail basato su un'espressione regolare mastodontica, ma del tutto conforme alle specifiche RFC 822.
Precedente: Alcune stranezze di JavaScript
Successiva: Mozilla Webian Shell, l'alternativa a Chrome OS di Google?
Copyright Programmazione.it™ 1999-2015. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.215 secondi.