これは正確にあなたが探している答えではありませんが、私は常に、サーバー側のメソッドOnValidateを使ってCustomValidatorにそのような検証を入れることができるかどうかを見ています。
正規表現は楽しく、困惑者にはぴったりですが、常にそれらを取得しておらず、あなたがしていることを理解しない人がいます。
特に、ソリューションを維持する人ではないことが予想される場合は、わかりやすく、わかりやすい側面で誤って試してください。
これはあまりにも冗長に見えるかもしれませんが、これは長期的には最も悲しみの少ない解決策の1つです。
私はASPページで次のようにのCustomValidatorを使用することになり
:実際に私は思います、
private const int EMPTY_PASSWORD_LENGTH = 0;
private const int MIN_PASSWORD_LENGTH = 6;
private const int MAX_PASSWORD_LENGTH = 6;
protected void validatePasswordField(object source,
ServerValidateEventArgs args) {
if (source == null) return;
string candidatePassword = TextBox1.Text;
args.IsValid = isValidPasswordText(candidatePassword);
}
private bool isValidPasswordText(string candidate) {
return candidate.Length == EMPTY_PASSWORD_LENGTH
|| (candidate.Length >= MIN_PASSWORD_LENGTH
&& candidate.Length <= MAX_PASSWORD_LENGTH);
}
まあ:
<asp:CustomValidator ID="rev1" runat="server"
ValidateEmptyText="true"
ControlToValidate="TextBox1"
SetFocusOnError="True"
Display="Dynamic"
OnServerValidate="validatePasswordField"
ErrorMessage="Password must be 6 characters long"/>
そして、コードビハインド私はこのような何かを入れたいですisValidPasswordText(文字列)の定義をビジネス層のクラスに引き出しますが、これはアーキテクチャ上の決定です。
これはなに?誰かが昨日、非常によく似た質問をしましたが、asp.netに特化していませんでした。 –
私はユーザーのグリッドビューを持っています.1列はテキストフィールド "パスワード"で、管理者にパスワードの上書きを入力するオプションが与えられています。 – madcolor