2

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

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

4 回答 4

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 ; }
于 2012-07-30T17:49:40.410 回答
1

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

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

于 2012-07-30T17:52:40.437 回答
0

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

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

于 2012-07-30T17:47:38.473 回答
0

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

一个很好的实现在这里完成

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

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

除此之外,您可以拥有数据注释扩展,它具有[Email]允许验证电子邮件地址的属性。

于 2012-07-30T17:50:29.113 回答