2016-09-04 4 views
0

電子メールアドレスを検証しようとしています。現在、私は次の正規表現を使って完全にうまく動作する電子メールアドレスを検証しています。しかし、今私はtweekしたいと@シンボルの後、電子メールアドレスのドメインの部分のためだけmin 2とmax 40文字を許可したいと思います。私は範囲を設定しようとしたが、私はそれがこのように動作しないと思う。どこが間違っていますか?電子メールアドレスの正規表現の正規表現

正規表現:それは、このような[email protected]として完璧な電子メールアドレスを拒否しているよう

^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})$ 
+0

[this](http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html)を参照してください。 –

答えて

0

電子メールアドレスを検証するには、非自明であり、あなたの正規表現。あなた自身でそれを行う必要がある場合は、RFC 822 §6をご覧ください。

しかし、C#では、文字列引数を受け入れるコンストラクタを持つMailAddressクラスがあります。 MailAddress addr = new MailAddress(emailString)を構築し、それがFormatExceptionをスローするかどうかを調べることができます。メリットとして、MailAddressオブジェクトには、電子メールアドレスを扱う多くの便利なメソッドがあります。

EDIT:私のお詫びは、あなたがホストの長さを制限しようとしていなかったことを忘れていました。上記のようにMailAddressを作成すると、addr.Hostにホスト名部分が含まれ、その長さを確認できます。