Я всегда исходил из предположения, что браузерное регулярное выражение электронной почты является более надежным, чем какой-либо шаблон регулярного выражения в JS / PHP.
Мой работодатель только что показал мне, что обе строки считаются правильными (наконец-то в FF28):
test@test.com // Expected to be true, is true
test@test // Expected to be false, is true
Почему последнее верно? Это ошибка или что-то на будущее? Потому что, насколько я могу судить, неправильно использовать расширение (кроме, может быть, локальных хостов).
Кто-нибудь, кто может пролить свет на это?
email
firefox
validation
Мартейн
источник
источник
<input type="email" />
это полезно только для мобильных веб-сайтов, поэтому большинство клавиатур будут отображаться с соответствующим дисплеем (с@
клавишей и некоторыми.com
сочетаниями клавиш).pattern
test@test
это действительный адрес электронной почты ... он рассматриваетсяtest
какtld
. Так же, какtest@com
действительный адрес электронной почты дляcom
tld ... tools.ietf.org/html/rfc2822#section-3.4.1Ответы:
Он действителен, поскольку
test
может быть доменом верхнего уровня иlocalpart@top-level-domain
действительным адресом электронной почты.Смотрите, например, адрес электронной почты, часть домена
источник
test
как TLD только потому, что он еще не зарегистрирован.Вы можете отредактировать файл hosts или запустить DNS-сервер в локальной сети, чтобы создать машину с именем домена верхнего уровня. Адрес электронной почты будет доступен только в том случае, если он маршрутизируется только внутри этой локальной сети, но возможна его конфигурация.
источник
Также обратите внимание, что веб-браузеры не обязаны выполнять какие-либо проверки правильности. Старые браузеры не делают ничего особенного с адресом электронной почты. Новые браузеры могут проверять, но тип «электронная почта» наиболее полезен на мобильных устройствах, где пользователю может быть показана специализированная клавиатура.
источник