2

を使用してフォームフィールドを検証するためにHTML5ConstraintValidation APIを使用するとtype="email"、Chromeが正しいメールアドレスとして「aa@a」を受け入れることに気付きました。
これの目的は何ですか-これはバグですか?カスタムパターンを定義するのは悪い習慣ですか?

4

1 に答える 1

5

これの目的は何ですか

有効なメールアドレスを除外しないため。

これはバグですか

いいえ 。HTML5準拠のブラウザが使用する必要のある有効なメールアドレスの定義は次のとおりです。その定義には未解決の欠陥がありますが、それが修正されたとしてもaa@a、有効にフォーマットされた電子メールアドレスであることに変わりはありません。電子メールは60年代半ばに最初に作成されたことを思い出してください。私たちは、80年代半ばまでDNSを取得しませんでした。現在、私たちにとって少し奇妙に見える多くの「@」の右側は、これらの古いコンテキストで完全に有効です。

カスタムパターンを定義するのは悪い習慣ですか?

確かに、要件が「すべての有効にフォーマットされた電子メールアドレス」よりも厳しい場合は可能ですが、特に今年オンラインになるすべての新しいトップレベルドメインでは、電子メールの検証は間違いやすいものです。(有効な形式の電子メールアドレスではなく)有効な電子メールアドレスについて本当に心配している場合、唯一の解決策は、実際の電子メールをそのアドレスに送信し、到着を確認することです(ある種のトークンベースの確認URLを介してユーザーがクリックする必要があります) )。

于 2013-02-16T01:10:38.070 に答える