项目里登录需要对密码进行强度的验证。
密码必须包含:大写字母,小写字母,数字,特殊字符
网上找了很多代码都不能用。
const regex = /(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[\W])(?=.*[\S])^[0-9A-Za-z\S]{6,12}$/g;
const str = `@Qq13979453900`; //验证不过
console.log(regex.test(str))
求这个正则。
项目里登录需要对密码进行强度的验证。
密码必须包含:大写字母,小写字母,数字,特殊字符
网上找了很多代码都不能用。
const regex = /(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[\W])(?=.*[\S])^[0-9A-Za-z\S]{6,12}$/g;
const str = `@Qq13979453900`; //验证不过
console.log(regex.test(str))
求这个正则。
const checkArr = [
{
regexName: 'regexNum',
value: /\d/
},
{
regexName: 'regexLower',
value: /[a-z]/
},
{
regexName: 'regexUpper',
value: /[A-Z]/
},
{
regexName: 'regexSpeChar',
value: /[~!@#$%^&*]/
}
];
function checkPasswordLevel(password) {
let count = 0;
checkArr.forEach(item => {
if(item.value.test(password)) {
count++;
}
});
switch (count) {
case 4:
console.log("密码强度极高");
break;
case 3:
console.log("密码强度高");
break;
case 2:
console.log("密码强度中等");
break;
case 1:
console.log("密码强度低");
break;
default:
console.log("密码不符合规定");
break;
}
}
checkPasswordLevel("123"); // 密码强度低
checkPasswordLevel("123as"); // 密码强度中等
checkPasswordLevel("123asQW"); // 密码强度高
checkPasswordLevel("123asQW!@");// 密码强度极高
checkPasswordLevel("{}()"); // 密码不符合规定
由于字符出现顺序随机,所以使用多个正则表达式判断,看匹配成功数
如:
判断数字
判断小写字母
判断大写字母
判断可显符号
这就 4个表达式了,一个正确就是 25%,4个正好 100%
完美?
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
长度自己定,把最后面的+号改成自己需要的长度就可以了