题解 | #密码强度等级#

密码强度等级

https://www.nowcoder.com/practice/52d382c2a7164767bca2064c1c9d5361

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void (async function () {
    // Write your code here
    let str;
    let sum = 0;
    let w = false;
    let d = true;
    let s = true;
    let Ww = false;
    while ((line = await readline())) {
        str = line;
    }
    switch (true) {
        case str.length <= 4:
            sum += 5;
            break;
        case str.length >= 5 && str.length <= 7:
            sum += 10;
            break;
        case str.length >= 8:
            sum += 25;
            break;
    }
    // console.log('c',sum);
    switch (true) {
        case str.match(/[a-z]/gi) == null:
            sum += 0;
            break;
        case str.match(/[a-z]/g).length == str.match(/[a-z]/gi).length ||
            str.match(/[A-Z]/g).length == str.match(/[a-z]/gi).length:
            sum += 10;
            w=true;
            break;
        case str.match(/[a-z]/g).length > 0 && str.match(/[A-Z]/g).length > 0:
            sum += 20;
            Ww = true;
            break;
    }
    // console.log('w',sum);
    switch (true) {
        case str.match(/[\d]/g) == null:
            sum += 0;
            d = false;
            break;
        case str.match(/[\d]/g).length == 1:
            sum += 10;
            break;
        case str.match(/[\d]/g).length > 1:
            sum += 20;
            break;
    }
    // console.log('d',sum);
    switch (true) {
        case str.match(/[^a-z0-9]/ig) == null:
            sum += 0;
            s = false;
            break;
        case str.match(/[^a-z0-9]/ig).length == 1:
            sum += 10;
            break;
        case str.match(/[^a-z0-9]/ig).length > 1:
            sum += 25;
            break;
    }
    // console.log('s',sum);
    switch (true) {
        case Ww && d && s:
            sum += 5;
            break;
        case w && d && s:
            sum += 3;
            break;
        case w && d:
            sum += 2;
            break;
    }
    // console.log('e',sum);
    let result;
    switch (true) {
        case sum >= 90:
            result = "VERY_SECURE";
            break;
        case sum >= 80:
            result = "SECURE";
            break;
        case sum >= 70:
            result = "VERY_STRONG";
            break;
        case sum >= 60:
            result = "STRONG";
            break;
        case sum >= 50:
            result = "AVERAGE";
            break;
        case sum >= 25:
            result = "WEAK";
            break;
        case sum >= 0:
            result = "VERY_WEAK";
            break;
    }
    console.log(result);
})();

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务