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

不需要字段时的asp.net验证,asp.net,regex,vb.net,Asp.net,Regex,Vb.net,我需要在一个文本框中设置验证,用户在其中键入他们的电子邮件地址。。。但这不是必填字段,因此如果文本框包含默认文本(“电子邮件地址”),我希望允许提交表单 我已经发布了我已经拥有的代码,以确保键入了有效的电子邮件地址 <asp:RegularExpressionValidator CssClass="errorpopup" Display="Dynamic" ID="regexpEmail" ValidationGroup="mySubmit" runat="server" Erro

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

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

<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" />

只需将整个正则表达式括在
(?:…)?
中,使其成为可选的

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

^(?:[\w.%+-]+@(?:[\w-]+\.)+[A-Za-z]{2,6}\s*|Email address)?$

这仍然不会捕获所有有效地址,并将匹配一些无效地址。但是,除了RFC 2822实现正则表达式(它跨越大约四行或五行代码)之外,这可能是一个很好的折衷方案。

您的问题是?如果文本框中的值为空或“电子邮件地址”,我需要修改验证器以允许提交表单。