js调用此函数,返回密码强度级别
function getStrength(passwd){ intScore = 0; if (passwd.match(/[a-z]/)) // [验证]至少一个小写字母 { intScore = (intScore+1) } if (passwd.match(/[A-Z]/)) // [验证]至少一个大写字母 { intScore = (intScore+5) } // 单一验证 if (passwd.match(//d+/)) // [验证]至少一个数字 { intScore = (intScore+5) } if (passwd.match(/(/d.*/d.*/d)/)) // [验证]至少三个数字 { intScore = (intScore+5) } // 特殊字符验证 if (passwd.match(/[!,@#$%^&*?_~]/)) // [验证]至少一个特殊字符 { intScore = (intScore+5) } if (passwd.match(/([!,@#$%^&*?_~].*[!,@#$%^&*?_~])/)) // [验证]至少两个特殊字符 { intScore = (intScore+5) } // 复合验证 if (passwd.match(/[a-z]/) && passwd.match(/[A-Z]/)) // [验证]同时包含大写和小写 { intScore = (intScore+2) } if (passwd.match(//d/) && passwd.match(//D/)) // [验证] 同时包含字母和数字 { intScore = (intScore+2) } // [验证] 同时包含大写字母,小写字母,数字和特殊字符 if (passwd.match(/[a-z]/) && passwd.match(/[A-Z]/) && passwd.match(//d/) && passwd.match(/[!,@#$%^&*?_~]/)) { intScore = (intScore+2) } return intScore; }
另外一种方法。用一条正则验证密码强度,密码为6位数字或字符组成,且必须含有一个数字、一个字符
^(?=\d{0,5}[a-zA-Z])(?=[a-zA-Z]{0,5}\d)[a-zA-Z0-9]{6}$
1.一个 ^[a-zA-Z0-9]{6}$ 匹配整个密码串
2.接着1个断言,验证密码中必须出现过字符 (?=\d{0,5}[a-zA-Z])
3.类似第2步,也是一个断言,验证密码中必须出现过数字 (?=[a-zA-Z]{0,5}\d)