2011-01-10 8 views
0

同じテキストボックスを対象とする3つの正規表現バリデーターがありますが、それぞれ異なるエラーメッセージが表示されます。正規表現バリデーターをカスタムバリデーターに結合する(C#)

カスタムValidatorでこれらを組み合わせて別のErrorMessageを返すにはどうすればよいですか?

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)).)*$"); 
+0

「結合」する理由は何ですか?確かに、それぞれのケースに対して3つの別々のバリデータが完全に適切ですか? – Reddog

+0

デザインによるスタイル設定。 1つのブロックではなく3つのブロックで表示することを好むでしょう。 – bcm

答えて

0

私はあなたが3つの別々のバリデーターとしてそれらを保つべきだと思います。ただし、フォーム検証の残りの部分とパスワード検証を分離したい場合は、出力をグループ化するためのValidationGroupプロパティを調べることができます。

編集:以下のコメントをもとに、私は好ましい解決策は、動的にDisplayプロパティを設定し、複数のRegularExpressionValidatorのを維持することだったと思います。

+0

yeh ..私はこのフォームをフォームの残りの部分から分離するべきではありません。それ以外の場合は、validationGroupが明白な解決策になります。 – bcm

+0

私はそれを取るcustomValidators 3つの異なる正規表現に基づいて別のエラーメッセージを吐くことはできません?その場合、私はそれを正しく見せるためにCSSを書く必要があります(一緒にまたは別々に発生します) – bcm

+0

DisplayプロパティをDynamicとして設定すると、視覚的な間隔に関する問題は解決しません。あなたの正規表現パターンが重複しないようにしてください)?または、ValidationSummaryコントロールは、検証メッセージをロールオーバーするのに適していますか? – Reddog