cymxiao

博客园 首页 新随笔 联系 订阅 管理
问题描述: 写一个验证Email的正则表达式,但不可以是c.com作为域名。
符合:^[\w\._-]+\@[\w_-]+\.[\w\._-]+$
不允许@c.com
或者@*.c.com

解决方法:

貌似正则表达式中只有'|'(Or),没有 与关系,所以只好同时用2个正则表达式的Validator控件(.net)

msdn查到:非匹配用(?!pattern)

网上查到: 匹配非“非内容”的行的表达式应该写成:^(?!.*非内容).*$

所以,粘贴源代码如下:

<asp:TextBox ID="txtEmail" runat="server" CssClass="width120" MaxLength="50"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvEmail" runat="server" ErrorMessage="RequiredFieldValidator"
                                    ControlToValidate="txtEmail" Display="Dynamic" >Email不能为空 </asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="revEmail" runat="server" ErrorMessage="RegularExpressionValidator"
                                    ValidationExpression="^[\w\._-]+\@[\w_-]+\.[\w\._-]+$"
                                    ControlToValidate="txtEmail" Display="Dynamic" >Email地址格式不正确</asp:RegularExpressionValidator>
<asp:RegularExpressionValidator ID="revEmail2" runat="server" ErrorMessage="RegularExpressionValidator"
                                    ValidationExpression="^[\w\._-]+@(?!.*(\.c\.com)|(c\.com)).*$"
                                    ControlToValidate="txtEmail" Display="Dynamic" >Email地址不可以是@c.com或者@*.c.com</asp:RegularExpressionValidator> 


测试,通过。

posted on 2009-02-28 16:12  萧雨  阅读(2157)  评论(1编辑  收藏  举报