Tutti espressione regolare tenta di convalidare il formato e-mail in base a latini personaggi sono rotto. Non supportano internationalized domain names disponibili dal maggio 2010. Sì, avete letto bene, i caratteri non latini sono da allora consentiti nei nomi di dominio e quindi anche negli indirizzi di posta elettronica.
Sono quindi molti i possibili caratteri da convalidare. La cosa migliore è semplicemente mantenerla semplice. La seguente espressione regolare convalida il formato dell'email in base al verificarsi dei caratteri @
e .
.
<f:validateRegex pattern="([^[email protected]]+)(\.[^[email protected]]+)*@([^[email protected]]+\.)+([^[email protected]]+)" />
Ancora una volta, questo solo convalida il formato e-mail generale, non se l'e-mail in sé è legittimo. Si può ancora inserire [email protected]
come indirizzo e passare la convalida. Nessuna regex può coprirlo. Se la validità dell'indirizzo email è così importante, combinala con un sistema di autenticazione. Basta inviare una specie di e-mail di attivazione con un link di richiamo all'indirizzo e-mail in questione e lasciare che l'utente effettui il login per e-mail.
come per aggiornare la regex precedente per rendere solo i domini validi: .com, .net, .org, .edu? anche qualche idea su come perdere questa convalida in focus? –
Ecco come: ' ' –
Daniel
Non funziona per una e-mail completamente valida contenente il segno più, come nome + [email protected] – Igor