繁体   English   中英

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

[英]asp.net validation when field is not required

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

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

<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实现正则表达式,它跨越大约四到五行代码,这可能是一个很好的折衷方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM