我正在做一个人们可以注册的注册表,因为我将要求他们的电子邮件地址如果我可以进行regex
验证以捕获任何其他电子邮件
示例:
xxx@gmail.com 或 xxx @ yahoo.com ,只允许 xxx@bat.ac.uk 我可以实施一个系统,向注册人发送电子邮件,要求他们对其进行验证。我知道如何实现电子邮件位我只是坚持这个验证部分。希望这是有道理的
有没有办法修改默认电子邮件验证表达式
\ W +([ - +'] \ W +)@ \ W +([ - ] \ W +)\ W +([ - ] \ W +)。*
答案 0 :(得分:1)
如果这是ASP.NET Web窗体,那么您可以使用RegularExpressionValidator
来完成这项工作。
<asp:RegularExpressionValidator ID="SomeID"
runat="server"
ControlToValidate="TheControlIDToValidate"
ErrorMessage="An error message you want to display."
ValidationExpression="\w+([-+.']\w+)@\w+([-.]\w+).\w+([-.]\w+)*"
EnableClientScript="true" />
这将使用JavaScript验证客户端的值。但是,如果未启用JavaScript,则可以规避它,因此服务器端需要使用Regex
类:
Regex rgx = new Regex(@"\w+([-+.']\w+)@\w+([-.]\w+).\w+([-.]\w+)*", RegexOptions.IgnoreCase);
MatchCollection matches = rgx.Matches(input);
然后如果matches.Count > 0
你很好。
但是,如果是ASP.NET MVC,则可以使用RegularExpression
数据注释。您只需在模型的属性中添加属性:
[RegularExpression(@"\w+([-+.']\w+)@\w+([-.]\w+).\w+([-.]\w+)*", "Some error message.")]
public string EmailAddress { get; set; }
答案 1 :(得分:0)
我建议使用默认验证器检查邮件是否有效,并添加一个实现CLIENT端和服务器端验证的CustomValidator。
在这里,您可以检查扩展并执行所需的自定义逻辑。
答案 2 :(得分:0)
我会使用内置属性验证电子邮件地址,然后除此之外,请查看此正则表达式:
@bat.ac.uk$
然后您知道它是一封有效的电子邮件,其中包含您正在寻找的内容。电子邮件的验证非常复杂,我不建议重写它,所以只需要用两种不同的东西进行验证。