input type = "email" permite test @ test, ¿por qué?

10

Siempre he asumido que el navegador email-validation-regex es más robusto que algún patrón regex en JS / PHP.

Mi empleador me acaba de mostrar que ambas cadenas se consideran correctas (por fin en FF28):

[email protected] // Expected to be true, is true
test@test     // Expected to be false, is true

¿Por qué es esto último cierto? ¿Es esto un error o algo para el futuro? Porque, por lo que puedo decir, no es correcto no usar una extensión (aparte de quizás los hosts locales).

¿Alguien que pueda arrojar algo de luz sobre esto?

Martijn
fuente
2
"aparte de quizás localhosts", y ¿cómo se diferencia el navegador?
MrWhite
1
Además, considero que <input type="email" />solo es útil para sitios web móviles, por lo que la mayoría de los teclados se mostrarán con una pantalla adecuada (con la @tecla y algunos .comaccesos directos ...).
RichouHunter
No sé, no construyo navegadores :) Podría ser un truco inteligente, o tal vez alguna configuración a la que podría agregarlepattern
Martijn
66
Esa es una dirección perfectamente válida, ¿por qué sería rechazada?
Jörg W Mittag
1
porque test@testes una dirección de correo electrónico válida ... trata testcomo a tld. Al igual que test@comes una dirección de correo electrónico válida para el comtld ... tools.ietf.org/html/rfc2822#section-3.4.1
SnakeDoc

Respuestas:

20

Es válido porque testpodría ser un dominio de nivel superior y localpart@top-level-domaines una dirección de correo electrónico válida.

Ver, por ejemplo , dirección de correo electrónico, parte de dominio

Matteo
fuente
Y dado que ICANN ahora tiene un proceso para que cualquiera (lo suficientemente grande) solicite el TLD de su elección, ya no es realmente posible que un validador de correo electrónico lo rechace testcomo un TLD solo porque resulta que aún no está registrado.
Steve Jessop
1
@SteveJessop Además, el OP no especificó si está hablando de validez sintáctica (el correo electrónico será válido incluso si no está registrado) o si está hablando de verificar si el correo electrónico funciona (y en este caso se necesitaría mucho más). .
Matteo
Sin verificar si existe, me sorprendió que la extensión del dominio no fuera necesaria. Esto haría que la validación del navegador sea mucho menos útil, ya que alguien solo tiene que escribir asd @ ads y pasará.
Martijn
55
@Martijn: La "validación del navegador" es solo una verificación de validación de primera línea (que se omite fácilmente), por lo que debe ser la verificación más amplia posible. La validación "estricta" final aún debe estar en la lógica del lado del servidor.
MrWhite
3

Puede editar su archivo de hosts o ejecutar un servidor DNS en una red local para crear una máquina con un nombre de dominio de nivel superior. Solo se podrá acceder a la dirección de correo electrónico si se enruta solo dentro de esa red local, pero es una configuración posible.

Lie Ryan
fuente
2

Tenga en cuenta también que los navegadores web no están obligados a realizar ninguna verificación de validación. Los navegadores más antiguos no hacen nada especial con la dirección de correo electrónico. Los navegadores más nuevos pueden validar, pero el tipo de 'correo electrónico' es más útil en dispositivos móviles donde se puede mostrar un teclado especializado al usuario.

Ron Lussier
fuente