密码验证无效

时间:2016-02-05 04:21:28

标签: javascript jquery regex forms validation

https://secure.www.cartier.cn/zh-cn/服务/my-cartier/RegistrationStep1.html 我在RegEx下面使用jQuery验证来验证我的密码。

$.validator.addMethod("passwordTest", function(value, element) {
            return this.optional(element) || /^(?=.*\d)[0-9a-zA-Z\!\@\#\$\%\^\&\*\)\(\+\=\.\_\-\?\}\{\]\[\>\<\"\\\/\'\:\;]{8,}$/i.test(value);
        }, _objPropertiesMsg.passWeak);

适用于密码验证的规则,如CARE-8804中所述:

min 8 alphanumerical chars
combination of letters & numbers
no consecutive repeat of a char more than 2 times

它工作到8个字符但超过8个字符所有验证失败。 此外,它连续2次查询并接受仅8个号码失败。

1 个答案:

答案 0 :(得分:0)

我想通常不是一个好主意,试着在一个正则表达式中检查所有条件。

相反,只需检查纯javascript的长度,正则表示检查连续两次不超过两次的字符,另一个确保至少有一个数字后跟非数字或其他方式:

$.validator.addMethod("passwordTest", function(value, element) {
            return this.optional(element) || value.length>=8 && /^((.)\2?(?!\2))+$/i.test(value) && /(\d[^\d]|[^\d]\d)/.test(value);
        }, _objPropertiesMsg.passWeak);

https://jsfiddle.net/jvL151ya/

处有一个概念验证机器