2016-08-03 1 views
4

私は私の電子メールの検証のための.NET使用しています:メールバリの空のスペースを無視するよう

[Display(Name = "Email address")] 
    [Required(ErrorMessage = "The email address is required")] 
    [EmailAddress(ErrorMessage = "Invalid Email Address")] 

をしかし、私は[email protected]ような電子メールアドレスを貼り付けコピーした場合(.COMの終わりに空きスペースに気づき、それを言います無効です。 私は検証のためにその空きスペースを無視するように伝えることができますどのように?

私は、SOエディタで空のスペースを入力し空のスペースが後にある想像ができませんでした。com

+1

スペースを含めると、実際には無効な電子メールアドレスがあります。検証中に無視するのではなく、検証前に取り除くことはできませんか? – hvd

+2

EmailAddressAttribute http://referencesource.microsoft.com/#System.ComponentModel.DataAnnotations/DataAnnotations/EmailAddressAttribute.csのコードは次のとおりです。あなたはこれに基づいて自分のバージョンを書くことができますが、スペースは無視します。 –

+0

理想的には、末尾の空白を許可する場合は、検証を実行する前にクライアント側でトリミングする必要があります。これを行うためのJavaScript関数を書くことができます。しかし、この機能が有効になっている場合、この関数がクライアント側の目立たないjQueryの検証に干渉するかどうかはわかりません。 –

答えて

6

あなたは正規表現の検証を使用することができます属性といくつかのRegexを使用してスペースの先頭と末尾を許可します。例は以下の通りである:

^ *([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,6}) *$ 

しかし、この正規表現はサンプルのみであり、私はあなたが、あなたのニーズに受け入れられる正規表現を見つけるためにThis site以下のコメントで述べたSOのポストを訪問し、お勧めします無限のスペースを許可するには、両端に[Space]*を使用してください。

+0

電子メールアドレスを[email protected]として入力します。この正規表現では許可されません。また、https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains#ICANN-era_generic_top-level_domains(たとえば.marketing)にあるTLDの多くを、TLDを2〜5文字に制限することによって拒否します。またhttp://stackoverflow.com/questions/3844431/are-email-addresses-allowed-to-contain-non-alphanumeric-charactersが興味のあるかもしれません。 – Chris

+0

これは基本的な電子メール検証正規表現です。そのような状況に対応するためにインターネット検索で利用可能な多くのものがあります。重要なのは重要なことですが、質問には一応関係があります。1> Regex Validatorを使う2>認識された電子メールの正規表現の文字列を使用する3>スペースを許すために始めと終わりに '[space] *' –

+1

答えの私の問題は、あなたの答えの一部としてその正規表現を置くことによって人々はそれを見て、それが*使用する適切な正規表現だと仮定することです。人々はSOに来て、コードをコピーして貼り付けるだけです。彼らはこの答えを見ずに、「そして今、電子メール部分の正規表現を見つける」と言いません。答えの正規表現が実際に電子メールアドレスを検証するのに適したものと見なされるべきではないことを明確にしたい場合、それは素晴らしいでしょうが、それは私に読んだときに答えが完全な解決策であると感じるように感じます。 – Chris

関連する問題