我的密码检查器有点问题。
有一个包含一些字段的注册表单。我使用 jQuery Validate 插件来验证用户输入。
除了密码验证之外,这一切都有效:
密码应满足一些最低要求:
- 最小长度:8 -> 我只使用'minlength:8'
- 至少一个小写字符
- 至少一位数
- 允许的字符: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>