Я знаю, что этот вопрос был задан до смерти, но ни один из ответов, похоже, не работает, поэтому не знаю, является ли его плагин проблемой или мой код. Я использую плагин JQuery Validate, проверил документацию по регулярному выражению и уверен, что у меня все правильно. Однако, когда я набираю test1234 или TEST1234 в качестве пароля, плагин validate, кажется, принимает его как пароль, когда я прямо сказал, что я хочу в моем регулярном выражении 1 заглавную, 1 строчную, 1 цифру и 8-12 символов. По иронии судьбы, когда я набираю 7-символьный пароль, он срабатывает, если я использую только цифры и сопоставляю 8 символов, он срабатывает.
Может ли кто-нибудь перепроверить код, указанный ниже, в порядке?
Я также попробовал следующее:
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,12}$
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,12}$
<!--
( # Start of group
(?=.*\d) # must contain at least one digit
(?=.*[A-Z]) # must contain at least one uppercase character
(?=.*\W) # must contain at least one special symbol
. # match anything with previous condition checking
{8,12} # length at least 8 characters and also maximum of 12
) # End of group
-->
$().ready(function () {
$.validator.addMethod("PASSWORD", function (value, element) {
return this.optional(element) || /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,12}$/i.test(value);
}, "Passwords are 8-12 characters with uppercase letters, lowercase letters and at least one number.");
// Validate signup form on keyup and submit
$("#cp").validate({
rules: {
new_pass1: "required PASSWORD",
new_pass2: {required: true, equalTo: "#new_pass1"}
},
});
});