我需要验证我的密码,使其必须包含小写字母、大写字母、数字和特殊字符。 我的代码如下所示:
if (password.length < 8 || !/([a-zA-Z])/.test(password) || !/([0-9])/.test(password) || !/([!,%,&,@,#,$,^,*,?,_,~])/.test(password)){
console.log('Error: password is too weak');
}
如您所见,我在 if
条件下进行了许多测试。我可以将其设为单个正则表达式来实现我的目的吗?
请您参考如下方法:
你可以试试这个:
var regex = new RegExp("^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,})");
if (!regex.test(password)) {
console.log('Error: password is too weak');
}
(?=.*[a-z])
检查密码是否至少包含 1 个小写字符
(?=.*[A-Z])
检查密码是否至少包含 1 个大写字符
(?=.*[0-9])
检查密码是否至少包含 1 个数字字符
(?=.*[!@#\$%\^&\*])
检查密码是否至少包含 1 个特殊字符。
(?=.{8,})
检查密码是否至少包含 8 个字符或更多。