• 密码强度实时验证 【js读书笔记】


     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title>密码强度实时验证</title>
     6     </head>
     7     <body>
     8         <h2>密码强度实时验证</h2>
     9         <input id="pswStrength" data-hint="请输入密码" type="password" />
    10         <span id="showStrength"></span>
    11     </body>
    12     <script type="text/javascript">
    13         window.onload=function(){
    14             //设置样式
    15             function setCss(_this,cssOption){
    16                 /*判断节点类型*/
    17                 if(!_this||_this.nodeType===3||_this.nodeType===8||!_this.style){
    18                     return;
    19                 }
    20                 for(var cs in cssOption){//遍历节点属性
    21                     _this.style[cs]=cssOption[cs];
    22                 }
    23                 return _this;
    24             }
    25             /*去除字符串左右两边的空格*/
    26             function trim(chars){
    27                 return(chars||"").replace(/^(s|u00A0)+|(s|u00A0)+$/g,"");
    28             }
    29             /*验证密码强度*/
    30             function passwordStrength(pswS,showS){
    31                 var self=this;
    32                 /*字符权重:
    33                  数字1,字母2,其他字符3
    34                  当密码长度小于6时,不符合标准;
    35                  长度>=6,<=10 强度【弱】;长度>=6,>=10,<15 强度【中】;长度>=6,>=15 强度【强】*/
    36                 pswS.onkeyup=function(){//键盘按键被松开时发生
    37                     var _color=["red","yellow","orange","green"],
    38                         _msgs=["密码太短","","",""],
    39                         _strength=0,
    40                         _v=trim(pswS.value),//去掉密码前后空格
    41                         _vL=_v.length,//输入字符长度
    42                         i=0;
    43                     var charStrength=function(char){//计算单个字符强度
    44                         if(char>=48&&char<=57){//数字
    45                             return 1;
    46                         }else if(char>=97&&char<=122){//字母
    47                             return 2;
    48                         }else{//其他特殊字符
    49                             return 3;
    50                         }
    51                     }
    52                     //计算模式
    53                     if(_vL<6){//如果长度小于6,不符合密码标准
    54                         showS.innerText=_msgs[0];
    55                         setCss(showS,{
    56                             "color":_color[0] //设置字体红色
    57                         });
    58                     }else{//如果长度大于6,继续判断密码强度
    59                         for(;i<_vL;i++){//遍历字符
    60                             //调用charStrength 计算单个字符强度
    61                             _strength+=charStrength(_v.toLocaleLowerCase().charCodeAt(i));
    62                         }
    63                         if(_strength<10){//小于10 强度弱,字体黄色
    64                             showS.innerText=_msgs[1];
    65                             setCss(showS,{
    66                                 "color":_color[1]
    67                             });
    68                         }else if(_strength>=10&&_strength<15){//大于10且小于15 强度中,字体橘色
    69                             showS.innerText=_msgs[2];
    70                             setCss(showS,{
    71                                 "color":_color[2]
    72                             });
    73                         }else if(_strength>=15){//大于15 强度强,字体绿色
    74                             showS.innerText=_msgs[3];
    75                             setCss(showS,{
    76                                 "color":_color[3]
    77                             });
    78                         }
    79                     }
    80                 }
    81             }
    82             /*调用强度验证passwordStrength方法*/
    83             passwordStrength(
    84                 document.getElementById("pswStrength"),
    85                 document.getElementById("showStrength"));
    86         }
    87     
    88         
    89     </script>
    90 </html>
    “想要越幸运,就要越努力”
  • 相关阅读:
    IE兼容只读模式
    关于css实现单行、多行省略标记
    table表格字母无法换行
    IE浏览器兼容background-size
    IE兼容rgba()透明度
    修改输入框placeholder的默认样式
    Swarm+Docker+Portainer(集群,图形化)
    Docker的centos镜像内无法使用systemctl命令的解决办法
    Docker 制作Nginx镜像
    Xtrabackup 全量备份脚本
  • 原文地址:https://www.cnblogs.com/HollyLearning/p/5439626.html
Copyright © 2020-2023  润新知