Zawsze zakładałem, że regex sprawdzania poprawności wiadomości e-mail w przeglądarce jest bardziej niezawodny niż niektóre wzorce wyrażeń regularnych w JS / PHP.
Mój pracodawca właśnie pokazał mi, że oba ciągi są uważane za prawidłowe (w końcu w FF28):
[email protected] // Expected to be true, is true
test@test // Expected to be false, is true
Dlaczego to ostatnie jest prawdą? Czy to błąd, czy coś na przyszłość? Ponieważ, o ile mogę stwierdzić, nie jest poprawne nieużywanie rozszerzenia (oprócz lokalnych hostów).
Ktoś, kto może rzucić na to trochę światła?
email
firefox
validation
Martijn
źródło
źródło
<input type="email" />
jest to przydatne tylko w przypadku witryn mobilnych, dlatego większość klawiatur będzie wyświetlana z odpowiednim wyświetlaczem (z@
klawiszem i niektórymi.com
skrótami…).pattern
test@test
jest to prawidłowy adres e-mail ... traktuje siętest
jaktld
. Tak jaktest@com
jest to prawidłowy adres e-mail dlacom
TLD ... tools.ietf.org/html/rfc2822#section-3.4.1Odpowiedzi:
Jest prawidłowy, ponieważ
test
może być domeną najwyższego poziomu ilocalpart@top-level-domain
jest prawidłowym adresem e-mail.Zobacz na przykład adres e-mail, część domeny
źródło
test
jako TLD tylko dlatego, że nie jest jeszcze zarejestrowane.Możesz edytować plik hosts lub uruchomić serwer DNS w sieci lokalnej, aby utworzyć komputer z nazwą domeny najwyższego poziomu. Adres e-mail będzie dostępny tylko wtedy, gdy jest kierowany tylko w tej sieci lokalnej, ale jest to możliwa konfiguracja.
źródło
Należy również pamiętać, że przeglądarki internetowe nie są wymagane do przeprowadzania kontroli sprawdzania poprawności. Starsze przeglądarki nie robią nic specjalnego z adresem e-mail. Nowsze przeglądarki mogą sprawdzać poprawność, ale typ „e-mail” jest najbardziej przydatny na urządzeniach mobilnych, na których użytkownikowi może zostać wyświetlona specjalistyczna klawiatura.
źródło