3

私は、電子メール ID を検証するために次の正規表現を作成し、正規表現バリデーターで正規表現を使用した Web サイトで作業しています。正規表現は

\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

私が期待したように、有効な電子メールIDを受け入れます。しかし、私のQAがak@gmail.com.com.com.comそのような否定的な入力テストを行ったとき、電子メールIDが有効であると許可して言っています。私はあらゆる場所を検索し、これを解決するためにあらゆる面でほとんど試しました。上記のようにメールIDを制限するのを手伝ってくれませんか。実際には、次のような電子メール ID をak@gmail.co.in受け入れることができますが、後の最後の文字列が.繰り返されると問題が発生します。助けてください。ドットネット2005を使用しています。

4

3 に答える 3

1

RFC822で指定されている有効な電子メールの形式は非常に複雑であり、正規表現はおそらくそれらを解析および検証するための最良のツールではありません。それでも正規表現を使用したい場合は、Javascriptでメールアドレスを検証するための回答を確認することを検討する必要がありますか?または、C#で正規表現を使用してメールを解析します

TL; DR:電子メールアドレスの検証に正規表現を使用しないでください。代わりに、実際のRFC822パーサーを使用し、ドメインにDNS MXレコードが存在するかどうかを確認し、電子メールが受信され、ユーザーがそのアドレスを所有していることを検証するために使用できるリンクを使用して、そのアドレスに電子メールを送信してみてください。 。

于 2012-12-20T12:38:10.753 に答える
1

ak@gmail.com.com.com.com構文的に正しいです。ただし、のMXレコードがないためgmail.com.com.com.com、到達不能になりますが、無効にはなりません。

これを確認する場合は、最初に構文を確認し(その正規表現を使用して)、次にMXレコードでホスト名を検索する必要があります。

また、使用している正規表現が非常に悪く、多くの有効なメールアドレスが無効になることも指摘しておきます。

于 2012-12-20T12:39:19.643 に答える
-2

メールをチェックするために次の式を追加します

 ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"  
于 2012-12-20T12:38:50.373 に答える