Wszystko wyrażenie regularne próbuje potwierdzić format e-mail w oparciu o Łacińskiej bohaterów uszkodzony. Nie obsługują one internationalized domain names, które były dostępne od maja 2010 r. Tak, czytałeś to dobrze, znaki spoza alfabetu łacińskiego są od tej pory dozwolone w nazwach domen, a więc także w adresach e-mail.
Są to zatem bardzo wiele możliwych znaków do sprawdzenia. Najlepiej po prostu zachować prostotę. Poniższe wyrażenie właśnie sprawdza format wiadomości e-mail na podstawie występowania znaków @
i .
.
<f:validateRegex pattern="([^[email protected]]+)(\.[^[email protected]]+)*@([^[email protected]]+\.)+([^[email protected]]+)" />
Ponownie, to tylko potwierdza ogólny format e-mail, a nie to, czy e-mail jest legalny. Nadal można wpisać [email protected]
jako adres i przekazać potwierdzenie. Nikt nie może tego ukryć. Jeśli ważność adresu e-mailowego jest tak ważna, połącz je z systemem uwierzytelniania. Wystarczy wysłać e-mail aktywacyjny z linkiem oddzwonienia na adres e-mail i pozwolić użytkownikowi zalogować się za pomocą adresu e-mail.
jak zaktualizować powyższe wyrażenie, aby wprowadzić tylko prawidłowe domeny: .com, .net, .org, .edu? także wszelkie pomysły, jak sprawić, aby ta walidacja straciła ostrość? –
Oto jak: ' ' –
Daniel
Nie działa w przypadku całkowicie poprawnego e-maila zawierającego znak plus, na przykład [email protected] – Igor