JS密码正则验证(不能连续字符(如abc)连续3位或3位以上)(不能相同字符(如aaa)连续3位或3位以上)
下面是一个密码复杂度验证的正则表达式,它能确保密码不包含连续的重复字符,例如不能是"123", "abc"或者连续三个相同的数字如"111"。
function validatePassword(password) {
const regex = /^(?![0-9]+$)(?![a-zA-Z]+$)(?!([0-9a-zA-Z])*\2{2,})[0-9a-zA-Z]{6,}$/;
return regex.test(password);
}
// 测试
console.log(validatePassword('123456')); // false, 连续字符
console.log(validatePassword('abcde')); // false, 连续字符
console.log(validatePassword('111111')); // false, 相同字符
console.log(validatePassword('a1b2c3')); // true, 符合要求
这个正则表达式的要求是:
- 密码长度至少6位。
- 密码必须包含至少一种数字和一种字母。
- 密码不能全部由连续的数字或字母组成。
- 密码不能包含三个或更多连续相同数字或字母。
评论已关闭