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


10

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

私の雇用主はちょうど両方の文字列が正しいと見なされていることを私に示しました(FF28でようやく)

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

なぜ後者は本当ですか?これはバグですか、それとも将来のためのものですか?私の知る限りでは、(おそらくlocalhostsを除いて)拡張を使用しないことは正しくありません。

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


2
「多分localhostsを除いて」-そして、ブラウザはどのように区別しますか?
MrWhite 2014

1
さらに、これ<input type="email" />はモバイルWebサイトでのみ役立つので、ほとんどのキーボードが適切なディスプレイ(@キーといくつかの.comショートカット…)で表示されます。
RichouHunter 14

わからない、私はブラウザを構築しない:)巧妙なトリックかもしれないし、あるいはあなたが追加できる設定かもしれないpattern
Martijn

6
これは完全に有効なアドレスですが、なぜ拒否されるのですか?
イェルクWミッターク

1
ためには、test@test有効な電子メールアドレスです...それは扱いtestとしてtldTLDのtest@com有効なメールアドレスと同じようにcom... tools.ietf.org/html/rfc2822#section-3.4.1
SnakeDoc

回答:


20

ので、それは有効なtestトップレベルドメインであることとができlocalpart@top-level-domain、有効な電子メールアドレスです。

たとえば、メールアドレス、ドメイン部分を参照してください


そして、ICANNは誰でも(十分に大きい)選択したTLDを申請するプロセスを持っているtestので、まだ登録されていないという理由だけで、電子メール検証者がTLDとして拒否することはもはや現実的ではありません。
スティーブジェソップ2014

1
@SteveJessopさらに、OPは、構文の有効性について話しているか(登録されていなくてもメールは有効です)、またはメールが機能するかどうかの確認について話しているかどうか(この場合、さらに多くの情報が必要になります)を指定しませんでした。 。
マッテオ

それが存在するかどうかをチェックしていなかったので、ドメイン拡張が必要な​​いことに驚いた これは、誰かがasd @ adsと入力するだけで合格するため、ブラウザの検証の有用性が大幅に低下します。
Martijn 2014

5
@Martijn:「ブラウザーの検証」は、最初の行の検証チェック(簡単にバイパスされる)であるため、可能な限り幅広いチェックである必要があります。最終的な「厳格な」検証は、サーバー側のロジックで行う必要があります。
MrWhite 2014

3

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


2

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.