2010-12-18 83 views
0

我需要在用户输入他们的电子邮件地址的文本框中设置验证...这不是必填字段虽然所以我想允许表单被提交如果文本框包含默认文本(“电子邮件地址”)。asp.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

而你的问题是? – Oded 2010-12-18 15:37:58

+0

我需要修改验证器以允许在文本框中的值为空或“电子邮件地址”时提交表单。 – Tom 2010-12-18 15:47:24

回答

2

只是包围整个正则表达式中(?:...)?,使其可选。

但你没有使用非常好的电子邮件验证正则表达式。除了一个事实,即电子邮件地址不能可靠地通过正则表达式验证,你可以做,通过使用

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

这仍然无法赶上所有有效地址的更好一点,并会匹配一些无效的地址。但是缺少跨越大约四到五行代码的RFC 2822实现正则表达式,这可能是一个很好的折衷。

相关问题