我需要验证我的密码,使其必须包含小写字母、大写字母、数字和特殊字符。 我的代码如下所示:

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 个字符或更多。


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!