不需要字段时的asp.net验证

时间:2010-12-18 15:36:23

标签: asp.net regex vb.net

我需要在用户输入其电子邮件地址的文本框中设置验证...这不是必填字段,但我希望如果文本框包含默认文本(“电子邮件地址”),则允许提交表单“)。

我已经发布了我已经输入的代码,以确保输入有效的电子邮件地址。

<asp:RegularExpressionValidator CssClass="errorpopup" Display="Dynamic" ID="regexpEmail"
    ValidationGroup="mySubmit" runat="server" ErrorMessage="<strong>Please enter a valid email address.</strong>"
    ControlToValidate="tbEmail" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
    SetFocusOnError="true" />

1 个答案:

答案 0 :(得分:2)

将整个正则表达式括在(?:...)?中以使其成为可选项。

但是你没有使用非常好的电子邮件验证正则表达式。除了通过正则表达式永远无法可靠地验证电子邮件地址这一事实之外,使用

可以做得更好一些
^(?:[\w.%+-]+@(?:[\w-]+\.)+[A-Za-z]{2,6}\s*|Email address)?$

这仍然无法捕获所有有效地址,并且会匹配一些无效地址。但是缺少RFC 2822实现正则表达式,其中包含大约四到五行代码,这可能是一个很好的折衷方案。

相关问题