在asp.net中显示有关正确数据的消息的正则表达式验证

在asp.net中显示有关正确数据的消息的正则表达式验证,asp.net,Asp.net,RegularExpressionValidator允许我们在数据无效时显示错误消息。当数据有效时,它是否也可能显示不同的消息?编辑下面的解决方案不起作用 当e.IsValid==true时,该消息不可见。我想您可以通过在ClientValidationFunction中将其设置为visible来解决这个问题,但这也不起作用,因为asp.net包含的JavaScript验证代码执行ClientValidationFunction,然后调用名为ValidatorUpdateDisplay的方法,该

RegularExpressionValidator允许我们在数据无效时显示错误消息。当数据有效时,它是否也可能显示不同的消息?

编辑下面的解决方案不起作用

当e.IsValid==true时,该消息不可见。我想您可以通过在ClientValidationFunction中将其设置为visible来解决这个问题,但这也不起作用,因为asp.net包含的JavaScript验证代码执行ClientValidationFunction,然后调用名为ValidatorUpdateDisplay的方法,该方法根据IsValid设置可见性

所以。。。不,我不认为您可以使用Asp.Net验证程序来显示有效和无效数据的消息,同时在提交表单时仍保留正确的验证功能

您可以使用两个具有反向模式的regex验证器,然后使用一些代码来告诉提交的表单不要在验证良好输入时失败,但是您最好只编写一个与表单验证无关的自定义解决方案

原始答案供参考

您可以尝试创建一个自定义验证器,根据输入更改验证器上的ErrorMessage属性

大概是这样的:

标记:

<asp:CustomValidator ID="MyCustomValidator" runat="server" OnServerValidate="OnCustomValidate" ControlToValidate="MyControlToValidate"></asp:CustomValidator>

否它用于验证输入而不是显示数据。你想达到什么目的,你能再解释一下吗?
protected void OnCustomValidate(object source, ServerValidateEventArgs e)
{
    var validator = (source as CustomValidator);
    var validRegex = new Regex("[a-z]");
    if (validRegex.IsMatch(e.Value))
    {
        e.IsValid = true;
        validator.ErrorMessage = "Good input";
        return;
    }
    validator.ErrorMessage = "Your input is not valid";
    e.IsValid = false;
}