电子邮件验证的正则表达式无法正常工作

时间:2011-11-22 08:58:18

标签: asp.net regex

我已经设置了一个正则表达式验证器,用于验证在我的某个表单上输入文本框的所有电子邮件地址,唯一的问题是它在一个奇怪的情况下不起作用。

这是我的代码

<asp:TextBox ID="tbEmail1" runat="server" />

<asp:RegularExpressionValidator Display="Dynamic" ID="rgv1" runat="server"
ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
ControlToValidate="tbEmail1" ErrorMessage="Invalid email address" />

这种情况不起作用的情况是输入这样的电子邮件地址

  

jamie-taylor-@hotmail.co.uk

现在我不知道可以用这种方式设置电子邮件地址,但我只是设置了一个,似乎没有问题,除非事实是我不能在不告诉我的情况下将其输入到我的表单中这是无效的

有什么想法吗?

提前致谢

3 个答案:

答案 0 :(得分:2)

Comparing E-mail Address Validating Regular Expressions。此页面包含要测试的正则表达式和电子邮件地址。

通常情况下,让你的正则表达式不是很严格。最好让一两封电子邮件反弹,而不是客户无法创建帐户。

答案 1 :(得分:1)

让我们增强正则表达式:

\w+([-+.']\w+[-]*)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

修改

表示@Sjoerd:

\w+([-+.']\w+[-]*)*@\w+([-.]*\w+)*\.\w+([-.]\w+)*

答案 2 :(得分:0)

使用下面的表达可能对你有帮助

 \w+([-+.']\w+[-])*@\w+([-.]\w+)*\.\w+([.]\w+)*