我的密码检查器有一点问题.
有一些注册表格有一些字段.
我使用jQuery验证插件来验证用户输入.
除了密码验证,它一切正常工作:
密码应符合以下最低要求:
>最小长度:8 – >我只是使用’minlength:8′
>至少一个小写字符
>至少一位数字
>允许的字符:A-Z a-z 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",element) { return /^[A-Za-z0-9\d=!\-@._*]+$/.test(value); }); }); </script>
解决方法
If I add
(?=.*[a-z])
the whole code doesn’t work anymore.
在这里添加:
/^(?=.*[a-z])[A-Za-z0-9\d=!\-@._*]+$/
但是,没有一个前瞻性就会更容易做到这一点:
$.validator.addMethod("pwcheck",function(value) { return /^[A-Za-z0-9\d=!\-@._*]*$/.test(value) // consists of only these && /[a-z]/.test(value) // has a lowercase letter && /\d/.test(value) // has a digit });