我想使用比较验证器验证 2 个字段 1)电子邮件地址(必填字段 - 使用必填字段验证器)2)确认电子邮件地址
如果我在电子邮件地址中输入 abc@abc.com 并在确认电子邮件地址中输入 abc@abc.com,它将正常工作。但是,当我在其中一个文本框中的电子邮件地址后添加空格时,它会说两封电子邮件都不匹配,这是不可取的。如何解决这个问题?如果我能够通知用户电子邮件地址中不允许使用该空间,这将对用户有所帮助。
我想使用比较验证器验证 2 个字段 1)电子邮件地址(必填字段 - 使用必填字段验证器)2)确认电子邮件地址
如果我在电子邮件地址中输入 abc@abc.com 并在确认电子邮件地址中输入 abc@abc.com,它将正常工作。但是,当我在其中一个文本框中的电子邮件地址后添加空格时,它会说两封电子邮件都不匹配,这是不可取的。如何解决这个问题?如果我能够通知用户电子邮件地址中不允许使用该空间,这将对用户有所帮助。
好吧,如果用户添加了空格,则电子邮件不匹配,因此错误消息是正确的。如果您想为允许的字符添加另一个验证,您可以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 = "..."
}
}