私はMVCアプリケーションを作成しており、強力なパスワードが必要です。簡単に、私は次のプロパティを持つビューモデルを設定しました。Jquery UnobstrustiveとMVC 5 - RegExがjquery unobstrustiveで満足することはありません
[Required]
[RegularExpression(@"(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,", ErrorMessage ="1 upper, 1 lower, 1 digit, 8 character minimum length")]
public string PasswordEntered { get; set }
私は、サーバーの検証を使用するとき、これはうまく動作します:限り、私は上下、数値および8つの文字の合計を入力すると、私のモデルが有効です。
jqueryの邪魔にならない検証を有効にすると、私の他のフィールドはすべて往復なしで検証されますが、Password123のような有効なパスワードを入力しても忘れてはいけないエラーメッセージが表示されます。
なぜ正規表現は機能しませんか?これを修正するにはどうすればよいですか?
編集: さらなる研究。 jqueryのコードをデバッグおよびステッピングに私は私の正規表現は、任意のマッチグループを返さないため、この
return (match && (match.index === 0) && (match[0].length === value.length));
だから、jqueryのは、失敗したとして、正規表現を考慮してご覧ください。私はjqueryを満たすためにマッチグループを得る方法がわかりません...
jqueryの検証の前に作業していたにもかかわらず、問題が私の正規表現にあると思います...これを今見てください。 –
正規表現を簡略化し、https://regex101.com/を使用して正規表現「?=。* \ d」(?=。* [az])(?=。* [AZ])を検証しました。これは長さの要件を取り除くことに注意してください。まだjqueryを使用して検証していません。 –
jqueryが結果を有効であると認識しないマッチグループを正規表現が与えないためです。上記の編集を参照してください。 –