题解 | #密码强度等级#
密码强度等级
https://www.nowcoder.com/practice/52d382c2a7164767bca2064c1c9d5361
let str = readline();
function lenResult(s) {
let len = s.length;
if(len <= 4) return 5;
if(len <= 7) return 10;
if(len >= 8) return 25;
}
function hasZimuResult(s) {
let aLen = s.replace(/[^a-z]+/g, "").length;
let ALen = s.replace(/[^A-Z]+/g, "").length;
if(aLen == 0 && ALen == 0) return 0;
if(aLen != 0 && ALen != 0) return 20;
return 10;
}
function hasNumberResult(s) {
let l = s.replace(/[^0-9]+/g, "").length;
if(l == 0) return 0;
if(l == 1) return 10;
if(l > 1) return 20;
}
function hasFuhaoResult(s) {
let l = s.replace(/[a-zA-Z0-9\s]+/g, "").length;
if(l == 0) return 0;
if(l == 1) return 10;
if(l > 1) return 25;
}
function caculResult(s) {
let a = lenResult(s);
let b = hasZimuResult(s);
let c = hasNumberResult(s);
let d = hasFuhaoResult(s);
let sum = a + b + c + d;
if(b == 20 && c > 0 && d > 0) return sum + 5;
if(b > 0 && c > 0 && d > 0) return sum + 3;
if(b > 0 && c > 0) return sum + 2;
return sum;
}
function saveReasult() {
let sum = caculResult(str);
if(sum >= 90) return "VERY_SECURE";
if(sum >= 80) return "SECURE";
if(sum >= 70) return "VERY_STRONG";
if(sum >= 60) return "STRONG";
if(sum >= 50) return "AVERAGE";
if(sum >= 25) return "WEAK";
if(sum >- 0) return "VERY_WEAK";
}
console.log(saveReasult());
