bay*_*phi 21 regex passwords jquery jquery-validate
我的密码检查器有点问题.
有一些领域的注册表格.我使用jQuery Validate插件来验证用户输入.
除密码验证外,它都有效:
密码应满足一些最低要求:
目前我使用此代码验证密码:
$.validator.addMethod("pwcheck",
function(value, element) {
return /^[A-Za-z0-9\d=!\-@._*]+$/.test(value);
});
Run Code Online (Sandbox Code Playgroud)
本规范适用于允许的字符,但不适用于最低要求.我知道您可以使用例如(?=.*[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>
Run Code Online (Sandbox Code Playgroud)
Ber*_*rgi 41
如果我添加
(?=.*[a-z])整个代码不再起作用.
在这里添加:
/^(?=.*[a-z])[A-Za-z0-9\d=!\-@._*]+$/
Run Code Online (Sandbox Code Playgroud)
但是,如果没有前瞻,这样做会容易得多:
$.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
});
Run Code Online (Sandbox Code Playgroud)
Ket*_*ari 10
您可以创建自己的自定义 jQuery 验证规则。它针对所有条件返回100% 准确度的有效消息。
$.validator.addMethod("strong_password", function (value, element) {
let password = value;
if (!(/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[@#$%&])(.{8,20}$)/.test(password))) {
return false;
}
return true;
}, function (value, element) {
let password = $(element).val();
if (!(/^(.{8,20}$)/.test(password))) {
return 'Password must be between 8 to 20 characters long.';
}
else if (!(/^(?=.*[A-Z])/.test(password))) {
return 'Password must contain at least one uppercase.';
}
else if (!(/^(?=.*[a-z])/.test(password))) {
return 'Password must contain at least one lowercase.';
}
else if (!(/^(?=.*[0-9])/.test(password))) {
return 'Password must contain at least one digit.';
}
else if (!(/^(?=.*[@#$%&])/.test(password))) {
return "Password must contain special characters from @#$%&.";
}
return false;
});
Run Code Online (Sandbox Code Playgroud)