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

时间:2012-03-07 16:27:23

标签: asp.net

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

1 个答案:

答案 0 :(得分:1)

编辑以下的解决方案无法正常工作。

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

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

您可以使用两个具有反向模式的正则表达式验证器,然后使用一些代码来告知提交的表单不会对良好输入的验证失败,但您最好只编写一个与验证无关的自定义解决方案。形式。

原始答案供参考

您可以尝试创建一个自定义验证器,根据输入更改验证器上的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;
}