打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
H5企业面试真题实战讲解

现公司要开发一个业务管理系统,要求注册环节的密码需要提示用户其安全等级,密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分。

一、密码长度:

5 分: 小于等于4 个字符

10 分: 5 到7 字符

25 分: 大于等于8 个字符

二、字母:

0 分: 没有字母

10 分: 全都是小(大)写字母

20 分: 大小写混合字母

三、数字:

0 分: 没有数字

10 分: 1 个数字

20 分: 大于1 个数字

四、符号:

0 分: 没有符号

10 分: 1 个符号

25 分: 大于1 个符号

五、奖励:

2 分: 字母和数字

3 分: 字母、数字和符号

5 分: 大小写字母、数字和符号

最后的评分标准:

大于等于 90: 非常安全

大于等于80: 安全

大于等于70: 非常强

大于等于 60: 强

大于等于 50: 一般

大于等于 25: 弱

大于等于0: 非常弱

对应输出为:

VERY_WEAK,

WEAK,

AVERAGE,

STRONG,

VERY_STRONG,

SECURE,

VERY_SECURE

样例输入

dgsayd$%12

样例输出

SECURE

function verify(pwd){

    let score = 0;

    // 一、密码长度:

    if(pwd.length<=4) score+=5; //   5 分: 小于等于4 个字符

    if(pwd.length>=5&&pwd.length<=7) score+=10; //   10 分: 5 到7 字符

    if(pwd.length>=8) score+=25; //   25 分: 大于等于8 个字符

    // 二、字母:

    let letter = /[a-zA-Z]/.test(pwd);

    let mixed = false;

    if(/^[a-z]+$/.test(pwd) || /^[A-Z]+$/.test(pwd)) score+=10 //   10 分: 全都是小(大)写字母

    if(/[a-z]/.test(pwd) && /[A-Z]/.test(pwd)) {  //   20 分: 大小写混合字母

        score+=20;

        mixed = true;

    }

    // 三、数字:

    let number = /\d/.test(pwd);

    if(pwd.match(/\d/g).length == 1) score+=10;  //   10 分: 1 个数字

    if(pwd.match(/\d/g).length > 1) score+=20;  //   20 分: 大于1 个数字

    // 四、符号:

    let symbol = /[^a-zA-Z0-9]/.test(pwd);

    if(pwd.match(/[^a-zA-Z0-9]/).length == 1) score+=10;  //   10 分: 1 个符号

    if(pwd.match(/[^a-zA-Z0-9]/).length > 1) score+=25;   //   25 分: 大于1 个符号

    // 五、奖励:

    if(letter && number && !mixed && !symbol) score += 2;  //   2 分: 字母和数字

    if(letter && number && !mixed && symbol) score += 3;   //   3 分: 字母、数字和符号

    if(letter && number && mixed && symbol) score += 5;    //   5 分: 大小写字母、数字和符号

    // 最后的评分标准:

    if(score >= 90) console.log("VERY_SECURE");  //   大于等于 90: 非常安全

    if(score >= 80) console.log("SECURE");  //   大于等于80: 安全 ,

    if(score >= 70) console.log("VERY_STRONG");  //   大于等于70: 非常强 ,

    if(score >= 60) console.log("STRONG");  //   大于等于 60: 强 ,

    if(score >= 50) console.log("AVERAGE");  //   大于等于 50: 一般 ,

    if(score >= 25 && score<50) console.log("WEAK");     //   大于等于 25: 弱 ,

    if(score > 0 && score <25) console.log("VERY_WEAK");  //   小于 25: 非常弱 ,

}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
数字标点符号特效字符大全
word文档中如何将每一行中某个字符后面的全部文字字母符号全部去掉把@@@后面的数字全部去掉,Ctrl+H
键盘怎么
C#常用数据类型间的转换
(四)、javascript之正则表达式
判断字符是数字字符还是字母字符!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服