0

我想使用比较验证器验证 2 个字段 1)电子邮件地址(必填字段 - 使用必填字段验证器)2)确认电子邮件地址

如果我在电子邮件地址中输入 abc@abc.com 并在确认电子邮件地址中输入 abc@abc.com,它将正常工作。但是,当我在其中一个文本框中的电子邮件地址后添加空格时,它会说两封电子邮件都不匹配,这是不可取的。如何解决这个问题?如果我能够通知用户电子邮件地址中不允许使用该空间,这将对用户有所帮助。

4

2 回答 2

2

好吧,如果用户添加了空格,则电子邮件不匹配,因此错误消息是正确的。如果您想为允许的字符添加另一个验证,您可以RegularExpressionValidator在每个字段上使用 a。这是此正则表达式的示例:

<asp:RegularExpressionValidator 
     id="RegValid" 
     ControlToValidate="txtEmail" 
     ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" 
     ErrorMessage="Invalid email address"
     runat="server" >
</asp: RegularExpressionValidator>

看起来您需要更复杂的验证,因此您可以用自定义验证器替换所有内容并测试所有内容。标记:

<asp:CustomValidator runat="server" OnServerValidate="EmailValidate" Display="Dynamic" ControlToValidate="txtEmail2" ID="vldEmail"></asp:CustomValidator>

后面的代码:

protected void EmailValidate(object source, ServerValidateEventArgs args)
{
    if(txtEmail1.Text != txtEmail2.Text) {
        args.IsValid = False
        vldEmail.ErrorMessage = "Emails are different"
    }else {
        //for each condition that fails set IsValid to false and choose the error message:
        args.IsValid = False
        vldEmail.ErrorMessage = "..."
    }
}
于 2013-04-24T14:35:51.383 回答
0
regex = '^(?=.*[A-Za-z0-9])[\S]*$'

资源

我自己试过了,效果很好:)

于 2013-04-24T14:55:25.330 回答