密码强度校验-前端js

使用js对用户输入的密码进行强度校验

密码复杂度提示:当用户输入密码后,页面显示提示用户输入密码的复杂度(低、中、高),复杂度提示如下:

  • 低:6-7位(仅含两种字符)
  • 中:6-7位(含三种及三种以上字符),8-11位(含两种字符)
  • 高:12-20位(含两种字符),8-20位(含三种及三种以上字符)

解题思路:

   字符种类数                 字符长度length                        
                              6~7    |     8~11    |    12~20                     
      0                            
      1
      2                        低           中            高
      3                        中           高            高
getPasswordLevel = (password = "") =>  {
        const passwordLength = password.length;
        let level = 0;
        let num = 0;
        if (password.match(/[a-zA-Z]/g)) {
            num++;
        }
        if (password.match(/[0-9]/g)) {
            num++;
        }
        if (password.match(/[^\w\s]+/g)) {
            num++;
        }
        if (passwordLength < 6) {
            num = 0;
        }

        switch (num) {
            case 0:
            case 1:
                break;
            case 2:
                if (passwordLength > 7) {
                    level++;
                }
                level += Math.ceil(passwordLength / 11);
                break;
            case 3:
                level++;
                level += Math.ceil(passwordLength / 7);
                break;
        }

        return level;
    }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。