web-dev-qa-db-ja.com

input type = "email"はtest @ testを許可します、なぜですか?

私は常に、ブラウザのemail-validation-regexがJS/PHPの正規表現パターンよりも堅牢であるという仮定の下にいました。

私の雇用主は、両方の文字列が正しいと見なされることを示しました(最後にFF28で):

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

なぜ後者が本当ですか?これはバグですか、それとも将来の何かですか?私の知る限り、エクステンションを使用しないのは間違っている(多分localhostを除く)からです。

これに光を当てることができる人はいますか?

10
Martijn

testはトップレベルドメインであり、localpart@top-level-domainは有効なメールアドレスであるため、有効です。

例えば メールアドレス、ドメイン部分 をご覧ください

20
Matteo

ホストファイルを編集するか、ローカルネットワークでDNSサーバーを実行して、トップレベルのドメイン名を持つマシンを作成できます。電子メールアドレスは、そのローカルネットワーク内でのみルーティングされている場合にのみアクセスできますが、可能な構成です。

3
Lie Ryan

また、検証チェックを実行するためにWebブラウザーが必須ではないことにも注意してください。古いブラウザは、メールアドレスに対して特別なことをしません。新しいブラウザでは検証できますが、「電子メール」タイプは、ユーザーに専用のキーボードが表示されるモバイルデバイスで最も役立ちます。

2
Ron Lussier