使用数据注释检查特定电子邮件地址

时间:2012-07-30 17:42:53

标签: c# asp.net regex

如何检查用户在特定电子邮件地址中输入的注册?例如,我希望我的注册表只允许这些电子邮件地址:

  • @ gmail.com
  • @ yahoo.com
  • @ live.com

4 个答案:

答案 0 :(得分:2)

像这样:

[RegularExpression( @"@(gmail|yahoo|live)\.com$", ErrorMessage = "Invalid domain in email address. The domain must be gmail.com, yahoo.com or live.com")]
public string EmailAddress { get ; set ; }

答案 1 :(得分:1)

你甚至不需要正则表达式;你可以使用split()函数获取“@”后面的电子邮件地址部分,并根据允许的提供者列表进行检查。

这本身并不能保证它是一个格式正确的电子邮件地址(可能需要正则表达式,而且有点复杂),但它会确保地址以列表中的某个域结尾。

答案 2 :(得分:0)

您可以使用RegularExpressionValidator控件和表达式来查找电子邮件域。如果您还没有样本,可以在http://www.regexplib.com找到样本。

您可能还需要一个执行相同服务器端检查的CustomValidator。如果用户禁用Javascript,则可以规避您的RegularExpressionValidator。

答案 3 :(得分:0)

没有内置但您可以使用[RegularExpression]。您可以编写源自EmailAttribute的自定义RegularExpressionAttribute

完成了很好的实施here

您可以使用以下正则表达式查看电子邮件:

  

^ [A-Z0-9 _ \ + - ] +(\ [A-Z0-9 _ \ + - ]。+)。 @ [A-Z0-9] +(\ [A-z0- 9] +) \。([AZ] {2,4})$

除此之外,您还可以拥有Data Annotation Extension [Email]属性,以便验证电子邮件地址。