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
Parallel Studio XE 2015
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.217 secondi.