zoukankan      html  css  js  c++  java
  • 检验密码强度的JS类

    本文源于维生素C.net的一篇文章利用数学方法来大大降低一个逻辑判断实现的难度的例子

        <script type="text/javascript">
            
    var PasswordStrength ={
                Level : [
    "高,实在是高","还行啦","靠,这样也行"],
                LevelValue : [
    30,20,0],//强度值
                Factor : [1,2,5],//字符加数,分别为字母,数字,其它
                KindFactor : [0,0,10,20],//密码含几种组成的加数 
                Regex : [/[a-zA-Z]/g,/\d/g,/[^a-zA-Z0-9]/g] //字符正则数字正则其它正则
                }

            PasswordStrength.StrengthValue 
    = function(pwd)
            
    {
                
    var strengthValue = 0;
                
    var ComposedKind = 0;
                
    for(var i = 0 ; i < this.Regex.length;i++)
                
    {
                    
    var chars = pwd.match(this.Regex[i]);
                    
    if(chars != null)
                    
    {
                        strengthValue 
    += chars.length * this.Factor[i];
                        ComposedKind 
    ++;
                    }

                }

                strengthValue 
    += this.KindFactor[ComposedKind];
                
    return strengthValue;
            }
     
            PasswordStrength.StrengthLevel 
    = function(pwd)
            
    {
                
    var value = this.StrengthValue(pwd);
                
    for(var i = 0 ; i < this.LevelValue.length ; i ++)
                
    {
                    
    if(value >= this.LevelValue[i] )
                        
    return this.Level[i];
                }

            }

           
            alert(PasswordStrength.StrengthLevel(
    "23")); 
            alert(PasswordStrength.StrengthLevel(
    "abcd123"));     
            alert(PasswordStrength.StrengthLevel(
    "abcd!%23"));  
        
    </script>
  • 相关阅读:
    盛最多水的容器
    寻找2个有序数组的中位数
    从链表中删除总和值为0的连续节点
    链表中的下一个更大节点
    链表的中间节点
    循环有序链表的插入
    设计链表
    链表组件
    扁平化多级双向链表
    将二叉搜索数转化为排序的双向链表
  • 原文地址:https://www.cnblogs.com/think/p/399656.html
Copyright © 2011-2022 走看看