パスワードチェッカーに少し問題があります。
いくつかのフィールドを持つ登録フォームがあります。jQuery Validate プラグインを使用して、ユーザー入力を検証します。
パスワードの検証を除いて、すべて機能します。
パスワードは、いくつかの最小要件を満たす必要があります。
- 最小の長さ: 8 -> 'minlength: 8' を使用します
- 少なくとも 1 つの小文字
- 少なくとも 1 桁
- 使用できる文字: AZ az 0-9 @ * _ - . !
現時点では、このコードを使用してパスワードを検証しています。
$.validator.addMethod("pwcheck",
function(value, element) {
return /^[A-Za-z0-9\d=!\-@._*]+$/.test(value);
});
このコードは、許可されている文字には機能しますが、最小要件には機能しません。たとえば(?=.*[a-z])
、小文字の要件に使用できることを知っています。しかし、私はそれを機能させません。
追加する(?=.*[a-z])
と、コード全体が機能しなくなります。コードを既存のコードに適切に追加する方法を知る必要があります。
回答ありがとうございます。
これは完全なコードです
<script>
$(function() {
$("#regform").validate({
rules: {
forename: {
required: true
},
surname: {
required: true
},
username: {
required: true
},
password: {
required: true,
pwcheck: true,
minlength: 8
},
password2: {
required: true,
equalTo: "#password"
},
mail1: {
required: true,
email: true
},
mail2: {
required: true,
equalTo: "#mail1"
}
},
messages: {
forename: {
required: "Vornamen angeben"
},
surname: {
required: "Nachnamen angeben"
},
username: {
required: "Usernamen angeben"
},
password: {
required: "Passwort angeben",
pwcheck: "Das Passwort entspricht nicht den Kriterien!",
minlength: "Das Passwort entspricht nicht den Kriterien!"
},
password2: {
required: "Passwort wiederholen",
equalTo: "Die Passwörter stimmen nicht überein"
},
mail1: {
required: "Mail-Adresse angeben",
email: "ungültiges Mail-Format"
},
mail2: {
required: "Mail-Adresse wiederholen",
equalTo: "Die Mail-Adressen stimmen nicht überein"
}
}
});
$.validator.addMethod("pwcheck",
function(value, element) {
return /^[A-Za-z0-9\d=!\-@._*]+$/.test(value);
});
});
</script>