input type = "email" consente test @ test, perché?


10

Ho sempre supposto che il browser e-mail-validation-regex sia più robusto di qualche modello regex in JS / PHP.

Il mio datore di lavoro mi ha appena mostrato che entrambe le stringhe sono considerate corrette (finalmente in FF28):

test@test.com // Expected to be true, is true
test@test     // Expected to be false, is true

Perché questo è vero? È un bug o qualcosa per il futuro? Perché, per quanto ne so, non è corretto non usare un'estensione (a parte forse host locali).

Chiunque possa far luce su questo?


2
"a parte forse host locali" - e in che modo il browser si differenzia?
MrWhite,

1
Inoltre, ritengo che <input type="email" />sia utile solo per i siti Web mobili, in modo che la maggior parte delle tastiere venga visualizzata con un display appropriato (con il @tasto e alcune .comscorciatoie ...).
RichouHunter

Non lo so, non costruisco browser :) Potrebbe essere un trucco intelligente, o forse qualche impostazione a cui potresti aggiungerepattern
Martijn

6
È un indirizzo perfettamente valido, perché dovrebbe essere rifiutato?
Jörg W Mittag,

1
perché test@testè un indirizzo email valido ... tratta testcome a tld. Proprio come test@comè un indirizzo email valido per il comtld ... tools.ietf.org/html/rfc2822#section-3.4.1
SnakeDoc

Risposte:


20

È valido perché testpotrebbe essere un dominio di primo livello ed localpart@top-level-domainè un indirizzo email valido.

Vedi ad esempio Indirizzo e-mail, parte dominio


E poiché l'ICANN ha ora un processo per chiunque (abbastanza grande) per richiedere il TLD di sua scelta, non è più realmente possibile per un validatore di e-mail rifiutare testcome TLD solo perché sembra che non sia ancora stato registrato.
Steve Jessop,

1
@SteveJessop Inoltre l'OP non ha specificato se sta parlando di validità sintattica (l'e-mail sarebbe valida anche se non registrata) o se sta parlando di verificare se l'e-mail funziona (e in questo caso sarebbe necessario molto di più). .
Matteo

Non verificando se esiste, sono rimasto sorpreso dall'estensione del dominio non necessaria. Ciò renderebbe la validazione del browser molto meno utile, poiché qualcuno deve solo digitare asd @ ads e passerà.
Martijn,

5
@Martijn: la "convalida del browser" è solo un controllo di convalida di prima linea (che può essere facilmente ignorato), quindi deve essere il controllo più ampio possibile. La convalida "rigorosa" finale deve ancora essere nella logica lato server.
MrWhite,

3

È possibile modificare il file hosts o eseguire un server DNS su una rete locale per creare una macchina con un nome di dominio di livello superiore. L'indirizzo e-mail sarà accessibile solo se viene instradato solo all'interno di quella rete locale ma è una possibile configurazione.


2

Si noti inoltre che i browser Web non sono tenuti ad eseguire alcun controllo di convalida. I browser meno recenti non fanno nulla di speciale con l'indirizzo e-mail. I browser più recenti possono essere convalidati, ma il tipo di "email" è più utile sui dispositivi mobili in cui è possibile mostrare all'utente una tastiera specializzata.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.