<html>

<!--激情在最后面。请看最后面红色字

这是是个计算password强度的实例

网上有非常多这种样例

只是呢,都不怎么好

这是我写的一个完整的效果,能够通用,

new一下就能够实例化一个【关注重点】,

主要是用面向对象来写,感觉知道做下笔记

password强度验证规则例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

-->

<meta charset="UTF-8">

    <title>计算password强度</title>

  <head></head>

  <style>

   span{

    display: inline-block;

    line-height: 20px;

    text-align: center;

    width:20px;

    height:20px;

    border-radius: 50%;

    background:#ccc;

    font-size: 12px;

    color:#fff;

   }

   .current{

    background:green;

    color:#000;

   }

  </style>

<script src="jquery.js"></script>

  <body>

    <input type="text" id="test" class="input1">

    <input type="submit" value="submit" id="submit"/>

    <div class="vaild">

    <span>弱</span>

    <span>中</span>

    <span>强</span>

    </div>





     <input type="text" id="test" class="input2">

      <input type="submit" value="submit" id="submit"/>

    <div class="vaild2">

   <span>弱</span>

   <span>中</span>

   <span>强</span>

    </div>

    <script>

    //构造函数

    function Vaild(){

        this.input=$(".input1"),

    this.show=$(".vaild span"),

    this.name="current",

    this.vailded=function()

    {

    var _this=this;

    this.input.on("keyup", function()

    {

    // var div=$("#fen");

     //var tips=$("#tips");

     var f=0;//每次都清空

     var vals=$(this).val();

     //数组

     var num;

     var en;

     var fh;

     var jl;

     //得分

      var lenF;

     var numF;

     var enF;

     var fhF;

     var jlF;

     //推断长度

     if(vals.length>0&&vals.length <=4){

         lenF=5;

     }

     else if(vals.length>4&&vals.length<=7){

         lenF=10;

     }

     else if(vals.length>=8){

       lenF=25;

     }

     //推断数字

    num=vals.match(/\d/g)?vals.match(/\d/g):0;

    if(num==0){

     numF=0;

    }

    else if(num.length==1){

     numF=10;

    }

    else if(num.length>=2){

     numF=20;

    }

    //推断字母长度

     en=vals.match(/[A-Za-z_]/g)?

vals.match(/[A-Za-z_]/g):0;

    if(en==0){

     enF=0;

    }

    else if(en.length==1){

     enF=10;

    }

    else if(en.length>=2){

     enF=20;

    }

   //匹配符号

    fh=vals.match(/\W/g)?vals.match(/\W/g):0;

    if(fh==0){

     fhF=0;

    }

    else if(fh.length==1){

     fhF=10;

    }

    else if(fh.length>=2){

     fhF=25;

    }

    //奖励

    if(/\d+/g.test(vals)&&/[a-z_]+/g.test(vals)){

     jlF=2;

    }

    if(/\d+/g.test(vals)&&/[a-z_]+/g.test(vals)&&/\W+/g.test(vals)){

     jlF=3;

    }

    if(/\d+/g.test(vals)&&/[A-Z]+/g.test(vals)&&/[a-z_]+/g&&/\W+/g.test(vals)){

     jlF=5;

    }

    if(jlF==undefined||jlF=="NaN"||jlF=="undefined")

    {

     jlF=0;

    }

    var count=Number(lenF)+Number(numF)+Number(enF)+Number(fhF)+Number(jlF);

    //切换“弱” “中” “强”

     if(count>=0&&count<60){

       _this.show.eq(0).addClass(_this.name).siblings().removeClass(_this.name);

     }

     else if(count<90&&count>=60){

            _this.show.eq(2).removeClass(_this.name).siblings().addClass(_this.name);

     }

     else if(count>90){

        _this.show.addClass(_this.name);

     }

     else{

      _this.show.removeClass(_this.name);

     }

     //显示分数

    // div.html("分数 : "+ count)

     //測试多相应的所得分数

     console.log("长度分数:"+lenF)

     console.log("数字分数:"+numF)

     console.log("字母分数: "+enF)

     console.log("符号分数: "+fhF)

     console.log("奖励分数: "+jlF)

   })





    }

};

///实例化构造函数

var dd=new Vaild();

    dd.vailded();

   

   //开启第二个

   var bb=new Vaild();

   bb.input=$(".input2");

   bb.show=$(".vaild2 span");

   bb.vailded();

  

    </script>

  </body>

</html>

測试password强度的更多相关文章

  1. 学习使用Jmeter做压力測试(一)--压力測试基本概念

    一.性能測试的概念         性能測试是通过自己主动化的測试工具模拟多种正常峰值及异常负载条件来对系统的各项性能指标进行測试.负载測试和压力測试都属于性能測试,两者能够结合进行. 通过负载測试, ...

  2. Android网络传输中必用的两个加密算法:MD5 和 RSA (附java完毕測试代码)

    MD5和RSA是网络传输中最经常使用的两个算法,了解这两个算法原理后就能大致知道加密是怎么一回事了.但这两种算法使用环境有差异,刚好互补. 一.MD5算法 首先MD5是不可逆的,仅仅能加密而不能解密. ...

  3. Maven实现Web应用集成測试自己主动化 -- 部署自己主动化(WebTest Maven Plugin)

    上篇:Maven实现Web应用集成測试自己主动化 -- 測试自己主动化(WebTest Maven Plugin) 之前介绍了怎样在maven中使用webtest插件实现web的集成測试,这里有个遗留 ...

  4. MVC jsp+servlet+javabean 连接Mysql数据库測试demo

    本文介绍的是怎样使用MVC架构去实现jsp+servlet+javabean连接数据库 首先我们应该了解什么是MVC: MVC包含三个部分 : ①View:由各种JSP页面组成. ②Controlle ...

  5. 带有机器人框架的.NET自己主动化測试

    Clayton Neal在软件測试和质量保证方面有超过13年的经验,当中有八年的Windows, web,和移动应用程序的測试自己主动化经验.他在測试领域的全部等级都工作过.近期他在Bloomberg ...

  6. Window平台搭建Redis分布式缓存集群 (一)server搭建及性能測试

    百度定义:Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对很多其它.包含string(字符串).list(链表).set(集合).zset(sort ...

  7. ESP8266学习笔记1:怎样在安信可全功能測试板上实现ESP-01的编译下载和调试

    近期调试用到了安信可的ESP-01模块,最终打通了编译下载调试的整个通道,有一些细节须要记录,方便兴许的开发工作. 转载请注明:http://blog.csdn.net/sadshen/article ...

  8. 一百万数据索引实例測试--mysql

    推荐书籍:http://pan.baidu.com/s/1sjJIyRV 任务描写叙述: 如果一高频查询例如以下  SELECT * FROM user WHERE area='amoy' AND s ...

  9. 聊聊单元測试(一)——EasyMock

    一.单元測试是保证软件质量的重要方法. 单元測试是对系统中某个模块功能的验证,但我们总会遇到这样那样的问题,导致測试代码非常难编写.最直接的一个原因便是强耦合关系,被測试者依赖一些不easy构造,比較 ...

随机推荐

  1. JS中的switch case

    function GetDepartmentName(type) { switch (type) { case DepartMentQian: alert($('#DepartMentQian').v ...

  2. Windows10显示桌面我的电脑等图标

    1.桌面右键,选择最后一项:个性化 2. 选择:主题 --> 桌面图标设置 3. 将需要显示的图标勾上就可以啦.

  3. WLAN 基础架构功能

    WLAN 基础架构功能 Android WLAN 框架可帮助用户连接到优质 WLAN 网络(在有可用 WLAN 网络且需要连接到这类网络的情况下).Android 可通过多种方式来实现这一点: 打开网 ...

  4. 一篇文章助你理解Python2中字符串编码问题

    前几天给大家介绍了unicode编码和utf-8编码的理论知识,没来得及上车的小伙伴们可以戳这篇文章:浅谈unicode编码和utf-8编码的关系.下面在Python2环境中进行代码演示,分别Wind ...

  5. [POI2002][HAOI2007]反素数 数论 搜索 好题

    题目描述: 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1,2,4, ...

  6. ArchLinux 音乐播放客户端ncmpcpp和服务端mpd的配置

    Ncmcpp是一个mpd客户端,它提供了很多方便的操作 MPD是一个服务器-客户端架构的音频播放器.功能包括音频播放, 播放列表管理和音乐库维护,所有功能占用的资源都很少. --取自 wiki.arc ...

  7. [NOIP2009提高组]最优贸易

    题目:洛谷P1073.Vijos P1754.codevs1173. 题目大意:有n点m边的图,边分有向和无向.每个点有一个价格,用这个价格可以买入或卖出一个东西.一个人从1出发,要到n,途中可以买入 ...

  8. CSU 1446 Modified LCS 扩展欧几里得

    要死了,这个题竟然做了两天……各种奇葩的错误…… HNU的12831也是这个题. 题意: 给你两个等差数列,求这两个数列的公共元素的数量. 每个数列按照以下格式给出: N F D(分别表示每个数列的长 ...

  9. 题解 UVA10328 【Coin Toss】

    这道题目其实就是说有N张纸牌,问至少连续K张正面朝上的可能性是多少. 可以用递推做.首先我们将题目所求从 至少K张 转化为 总数 - 至多K张 (为什么要这样自己想) 设F[i][j]为前i个纸牌至多 ...

  10. EBS 第一个项目 学习总结 ---- 发运模块

    EBS 组织架构: (一)业务组(BG) (二)法律实体(LE) (三)业务实体(OU) (四)库存组织(INV) (五)公司成本中心(Cost Center) (六)HR组织 (七)多组织接入控制 ...