typ wejścia = „email” pozwala test @ test, dlaczego?


10

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):

test@test.com // 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?


2
„oprócz lokalnych hostów” - a czym różni się przeglądarka?
MrWhite

1
Ponadto uważam, że <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 .comskrótami…).
RichouHunter

Nie wiem, nie buduję przeglądarek :) To może być sprytna sztuczka, a może jakieś ustawienie, do którego możesz dodaćpattern
Martijn

6
To doskonale ważny adres, dlaczego miałby zostać odrzucony?
Jörg W Mittag

1
ponieważ test@testjest to prawidłowy adres e-mail ... traktuje się testjak tld. Tak jak test@comjest to prawidłowy adres e-mail dla comTLD ... tools.ietf.org/html/rfc2822#section-3.4.1
SnakeDoc

Odpowiedzi:


20

Jest prawidłowy, ponieważ testmoże być domeną najwyższego poziomu i localpart@top-level-domainjest prawidłowym adresem e-mail.

Zobacz na przykład adres e-mail, część domeny


A ponieważ ICANN ma teraz procedurę dla każdego (wystarczająco dużego), aby ubiegać się o wybraną przez siebie TLD, tak naprawdę nie jest już możliwe odrzucenie walidatora e-mail testjako TLD tylko dlatego, że nie jest jeszcze zarejestrowane.
Steve Jessop

1
@SteveJessop Ponadto OP nie określił, czy mówi o poprawności składniowej (e-mail byłby ważny, nawet jeśli nie został zarejestrowany), czy też mówił o sprawdzeniu, czy e-mail działa (iw tym przypadku byłoby znacznie więcej). .
Matteo

Nie sprawdzając, czy istnieje, byłem zaskoczony, że rozszerzenie domeny nie jest wymagane. Sprawiłoby to, że walidacja przeglądarki byłaby znacznie mniej przydatna, ponieważ ktoś musiałby tylko wpisać asd @ ads i przejdzie.
Martijn

5
@Martijn: „Sprawdzanie poprawności przeglądarki” to tylko sprawdzanie poprawności pierwszego wiersza (które można łatwo ominąć), więc musi to być jak najszerszy sprawdzian. Ostateczna „ścisła” weryfikacja nadal musi odbywać się w logice po stronie serwera.
MrWhite

3

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.


2

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.