C# 将正则表达式验证器组合到自定义验证器(C)

C# 将正则表达式验证器组合到自定义验证器(C),c#,validation,customvalidator,C#,Validation,Customvalidator,我有三个正则表达式验证器,它们针对相同的文本框,但分别给出不同的错误消息 如何在自定义验证器中组合它们以返回不同的错误消息 public void PasswordValidate(Object source, ServerValidateEventArgs args) { Regex PasswordComplexity = new Regex(@"^.*(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*$");

我有三个正则表达式验证器,它们针对相同的文本框,但分别给出不同的错误消息

如何在自定义验证器中组合它们以返回不同的错误消息

public void PasswordValidate(Object source, ServerValidateEventArgs args)
        {
            Regex PasswordComplexity = new Regex(@"^.*(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*$");
            Regex ConsecutiveCharCheck = new Regex(@"^(?!.*(?:(.)\1{3,})).*$");
            Regex PasswordLiteralCheck = new Regex(@"^((?!(p|P)(a|A)(s|S)(s|S)(w|W)(o|O)(r|R)(d|D)).)*$");

我认为你应该把它们作为三个独立的验证器。但是,如果希望将密码验证与表单验证的其余部分分开,则可以查看属性以对其输出进行分组


编辑:根据下面的评论,我认为首选的解决方案是将Display属性设置为Dynamic,并保留多个RegularExpressionValidator。

将它们组合在一起的原因是什么?当然,每个案例有三个独立的验证器是完全合适的??设计风格。宁愿显示在单个块中,而不是3个单独的块中。耶。。我不应该把这个和表格的其他部分分开。否则validationGroup将是显而易见的解决方案。我认为customValidators不能基于3个不同的正则表达式吐出不同的错误消息?在这种情况下,我必须编写更多的css,使其看起来正确,无论是一起触发还是分开触发。如果您将Display属性设置为动态,这并不能解决视觉间距方面的问题,您仍然需要确保您的正则表达式模式不重叠?或者也许ValidationSummary控件适合于汇总验证消息?@Brandon-如果您想尝试支持普通RegularExpressionValidator可以提供的客户端验证,则很难让自定义验证的动态消息部分正常工作。我将使用额外的div和css来尝试使其看起来更像对,不重叠。