C# 使用数据批注检查特定电子邮件地址

C# 使用数据批注检查特定电子邮件地址,c#,asp.net,regex,C#,Asp.net,Regex,我如何检查用户在特定电子邮件地址中键入的注册?例如,我希望我的注册表只允许以下电子邮件地址: @gmail.com @雅虎网站 @live.com 您可以使用RegularExpressionValidator控件和表达式来查找电子邮件域。如果您还没有样品,可以在找到样品 您可能还需要一个执行相同服务器端检查的CustomValidator。如果禁用Javascript,用户可以绕过RegularExpressionValidator。如下: [RegularExpression( @"@(g

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

  • @gmail.com
  • @雅虎网站
  • @live.com

您可以使用RegularExpressionValidator控件和表达式来查找电子邮件域。如果您还没有样品,可以在找到样品

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

如下:

[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 ; }

没有内置属性,但您可以使用
[RegularExpression]
。您可以编写从
RegularExpressionAttribute
派生的自定义
EmailAttribute

实现得非常好

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

^[a-z0-9\+-]+(\.[a-z0-9\+-]+)@[a-z0-9]+(\.[a-z0-9]+)。([a-z]{2,4})$


除此之外,您还可以使用具有
[Email]
属性的,该属性允许验证电子邮件地址。

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

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