Надежность пароля JQuery в верхнем и нижнем регистре - PullRequest
3 голосов
/ 23 марта 2012
$.validator.addMethod("validpassword", function(value, element) {
    return this.optional(element) ||
        /^.*(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[\d])(?=.*[\W]).*$/i.test(value);
}, "The password must contain a minimum of one lower case character," +
           " one upper case character, one digit and one special character..");

Приведенное выше регулярное выражение не делает различий между прописными и строчными буквами.Что не так?

1 Ответ

9 голосов
/ 23 марта 2012

Снимите флаг i. Это делает RegEx регистронезависимым . Кроме того, расширить [\W] до [\W_].

/^.*(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[\d])(?=.*[\W]).*$/i.test(value);
//                                           Remove this   ^

// Ok:
/^.*(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[\d])(?=.*[\W_]).*$/.test(value);
...