题解 | #密码强度等级#

密码强度等级

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
    while ((line = await readline())) {
        let tokens = line;
        let count = 0;
        // 长度
        if (tokens.length <= 4) {
            count = count + 5;
        } else if (tokens.length >= 5 && tokens.length <= 7) {
            count = count + 10;
        } else {
            count = count + 25;
        }
        // 字母
        let reg1 = /[a-z]/g.test(tokens);
        let reg2 = /[A-Z]/g.test(tokens);
        if ((reg1 && !reg2) || (!reg1 && reg2)) {
            count = count + 10;
        } else if (reg1 && reg2) {
            count = count + 20;
        }
        // 数字
        let reg3 = tokens.match(/[0-9]/g)?tokens.match(/[0-9]/g).length:0;
        if (reg3 == 1) {
            count = count + 10;
        } else if (reg3 > 1) {
            count = count + 20;
        }
        // 符号
        let reg4 = tokens.match(
            /[\!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\:\;\<\=\>\?\@\[\\\]\^\_\`\{\|\}\~]/g
        )?tokens.match(
            /[\!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\:\;\<\=\>\?\@\[\\\]\^\_\`\{\|\}\~]/g
        ).length:0;
        if (reg4 == 1) {
            count = count + 10;
        } else if (reg4 > 1) {
            count = count + 25;
        }
        // 奖励
        if (reg1 && reg2 && reg3 > 0 && reg4 > 0) {
            count = count + 5;
        } else if ((reg1 || reg2) && reg3 > 0 && reg4 > 0) {
            count = count + 3;
        } else if ((reg1 || reg2) && reg3 > 0) {
            count = count + 2;
        }
        switch (true) {
            case count >= 90:
                console.log('VERY_SECURE');
                break;
            case count >= 80:
                console.log('SECURE');
                break;
            case count >= 70:
                console.log('VERY_STRONG');
                break;
            case count >= 60:
                console.log('STRONG');
                break;
            case count >= 50:
                console.log('AVERAGE');
                break;
            case count >= 25:
                console.log('WEAK');
                break;
            case count >= 0:
                console.log('VERY_WEAK');
                break;
        }
    }
})();
全部评论
还是用正则比较简单
点赞 回复 分享
发布于 2022-10-30 16:26 四川

相关推荐

2025年10月3日中午,在写完定时一年后发给自己的信之后,敲下键盘,写下这篇文字。我把标题的“所有人”加了引号,因为如我们所见,确实有的人顺风顺水,每天过的很开心,或是早早进入大厂,或是年纪轻轻就拿到了高薪offer,或是过着可能我努力十年也不一定实现的生活。但也许,不是每个人的痛苦都能被别人看到的,这个月我经常会哭,被骗6000块钱、手上钱不够导致拖欠房租、生活还要借朋友钱、国庆长假也没有钱去旅游,互联网公司不稳定担心试用期不过(毕竟上段实习就是被裁了,一有点风吹草动就害怕),但这样的我,不是所有人都知道的,居然是有些朋友的羡慕对象。回忆我的七年“长跑”别人都是多年幸福的恋爱长跑,我没有恋...
故事和酒66:让每一颗种子找到合适自己的生长方式,最终绽放出独一无二的花朵,这远比所有人都被迫长成同一棵“参天大树”的世界,更加美好和富有生机。这是社会和环境的问题,而不是我们的问题。然而就是在这样的环境中,楼主依然能突破自我,逆势成长,其中的艰辛可想而知。这一路的苦难终究会化作你成长的养料
你小时候最想从事什么职业
点赞 评论 收藏
分享
驼瑞驰_招募评论官版...:反正我信了,上牛客,拿offer
腾讯开奖372人在聊
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务