javascript实现密码强度显示


Posted in Javascript onMarch 18, 2015

密码强度显示和中文强弱显示

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

    <title>My JSP 'a.jsp' starting page</title>

    <meta http-equiv="pragma" content="no-cache">

    <meta http-equiv="cache-control" content="no-cache">

    <meta http-equiv="expires" content="0">    

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

    <meta http-equiv="description" content="This is my page">

        <style type="text/css">

    * {margin:0px;padding:0px;}

    .J_PasswordStatus{padding-bottom:0px;height:18px;}

    .status-bar{margin:0px;display:inline-block;width:80px;height:5px;padding:1px;border:1px solid #42BF26;background-color:white;vertical-align:middle;font-size:0;}

    .status-bar span{background-color:#42BF26;height:5px;display:inline-block;}

    </style>

  </head>

  <body>

    <input type="password"  id="pwd1" style="float:left;margin-top:5px;" onkeyup="checkPassword();"/> 

        <div id="p_PasswordStatus" class="J_PasswordStatus"

            style="display: none; width: 300px;">

            <span class="trigger">密码强度: </span>

            <span class="status-bar" style="text-indent: 0px;">

            <span style="line-height: 5px;">  </span> 

            </span>

            <span class="status-result"></span>

        </div>

  </body>

</html>

<script type="text/javascript" src="jquery-1.7.2.min.js"></script>

<script type="text/javascript">

function checkPassword(){

    var pwd = $("#pwd1").val();

    gPasswdStatus(pwd,'p_PasswordStatus');

    }

function gPasswdStatus(value,id){

    var status = $("#"+id);

    var result = $("#"+id).find(".status-result")[0];

    var bar = $("#"+id).find(".status-bar span");

    if (value === "") {

        status.css("display","none");

    } else {

        var score = gCheckPassword(value);

        bar.css("width",score + "%");

        var resultDesp = gGetResultDesp(score);

        result.innerHTML = resultDesp;

        status.css("display","block");

    }

}

/**

 * 检验密码强度并返回得分

 * 

 * @param {}

 *            password

 * @return {Number}

 */

function gCheckPassword(password) {

    var _score = 0;

    if (!password) {

        return 0

    }

    if (password.length <= 4) {

        _score += 5

    } else {

        if (password.length >= 5 && password.length <= 7) {

            _score += 10

        } else {

            if (password.length >= 8) {

                _score += 25

            }

        }

    }

    var _UpperCount = (password.match(/[A-Z]/g) || []).length;

    var _LowerCount = (password.match(/[a-z]/g) || []).length;

    var _LowerUpperCount = _UpperCount + _LowerCount;

    if (_UpperCount && _LowerCount) {

        _score += 20

    } else {

        if (_UpperCount || _LowerCount) {

            _score += 10

        }

    }

    var _NumberCount = (password.match(/[\d]/g, "") || []).length;

    if (_NumberCount > 0 && _NumberCount <= 2) {

        _score += 10

    } else {

        if (_NumberCount >= 3) {

            _score += 20

        }

    }

    var _CharacterCount = (password.match(/[!@#$%^&*?_\.\-~]/g) || []).length;

    if (_CharacterCount == 1) {

        _score += 10

    } else {

        if (_CharacterCount > 1) {

            _score += 25

        }

    }

    if (_NumberCount && (_UpperCount && _LowerCount)

            && _CharacterCount) {

        _score += 5

    } else {

        if (_NumberCount && _LowerUpperCount && _CharacterCount) {

            _score += 3

        } else {

            if (_NumberCount && _LowerUpperCount) {

                _score += 2

            }

        }

    }

    return _score

}

 /**

  * 根据密码强度得分返回密码强弱度中文提示

  * 

  * @param {}

  *            score

  * @return {String}

  */

 function gGetResultDesp(score) {

    if (score <= 5) {

        return "\u592a\u77ed"

    } else {

    if (score > 5 && score < 20) {

        return "\u5f31"

        } else {

        if (score >= 20 && score < 60) {

            return "\u4e2d"

        } else {

            if (score >= 60) {

                return "\u5f3a"

            } else {

                return ""

            }

            }

        }

    }

 }

</script>

以上所述就是本文给大家分享的全部内容了,希望对大家熟练掌握javascript能够有所帮助。

Javascript 相关文章推荐
jquery.ui.draggable中文文档
Nov 24 Javascript
jquery ajax实现下拉框三级无刷新联动,且保存保持选中值状态
Oct 29 Javascript
jQuery Validate 验证,校验规则写在控件中的具体实例
Feb 27 Javascript
详解JavaScript的另类写法
Apr 11 Javascript
Javascript 制作图形验证码实例详解
Dec 22 Javascript
详解JavaScript中this的指向问题
Jan 20 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
Sep 21 Javascript
jquery获取select选中值的文本,并赋值给另一个输入框的方法
Aug 21 jQuery
使用axios请求接口,几种content-type的区别详解
Oct 29 Javascript
vue项目中在可编辑div光标位置插入内容的实现代码
Jan 07 Javascript
vue 通过绑定事件获取当前行的id操作
Jul 27 Javascript
解决vue-loader加载不上的问题
Oct 21 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
Mar 18 #Javascript
JavaScript从数组中删除指定值元素的方法
Mar 18 #Javascript
JavaScript通过字符串调用函数的实现方法
Mar 18 #Javascript
JS制作简单的三级联动
Mar 18 #Javascript
javascript实现ecshop搜索框键盘上下键切换控制
Mar 18 #Javascript
javascript版2048小游戏
Mar 18 #Javascript
JavaScript判断用户是否对表单进行了修改的方法
Mar 18 #Javascript
You might like
php桌面中心(四) 数据显示
2007/03/11 PHP
PHP数据库链接类(PDO+Access)实例分享
2013/12/05 PHP
由php中字符offset特征造成的绕过漏洞详解
2017/07/07 PHP
XENON基于JSON变种
2010/07/27 Javascript
javascript实现tabs选项卡切换效果(自写原生js)
2013/03/19 Javascript
js数组去重的常用方法总结
2014/01/24 Javascript
javascript多行字符串的简单实现方式
2015/05/04 Javascript
JS实现选择TextArea内文本的方法
2015/08/03 Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
2016/05/25 Javascript
详解XMLHttpRequest(一)同步请求和异步请求
2016/09/14 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
利用原生JS与jQuery实现数字线性变化的动画
2017/02/24 Javascript
基于jQuery实现定位导航位置效果
2017/11/15 jQuery
手把手教你如何编译打包video.js
2020/12/09 Javascript
python开发之函数定义实例分析
2015/11/12 Python
python解决方案:WindowsError: [Error 2]
2016/08/28 Python
python中安装Scrapy模块依赖包汇总
2017/07/02 Python
Python 实现数据库(SQL)更新脚本的生成方法
2017/07/09 Python
Python实现DDos攻击实例详解
2019/02/02 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
浅谈python标准库--functools.partial
2019/03/13 Python
使用Tensorflow将自己的数据分割成batch训练实例
2020/01/20 Python
基于Python爬取股票数据过程详解
2020/10/21 Python
Smashbox官网:美国知名彩妆品牌
2017/01/05 全球购物
澳大利亚男士西服品牌:M.J.Bale
2018/02/06 全球购物
Nordgreen台湾官网:极简北欧设计手表
2019/08/21 全球购物
c/c++某大公司的两道笔试题
2014/02/02 面试题
电子商务专业自我鉴定
2013/12/18 职场文书
幼儿园美术教学反思
2014/01/31 职场文书
法律七进实施方案
2014/03/15 职场文书
ktv筹备计划书
2014/05/03 职场文书
十一国庆节“向国旗敬礼”主题班会活动方案
2014/09/27 职场文书
2015暑期爱心支教策划书
2015/07/14 职场文书
2016年领导干部廉政承诺书
2016/03/24 职场文书
教你快速开启Apache SkyWalking的自监控
2021/04/25 Servers
uniapp 微信小程序 自定义tabBar 导航
2022/04/22 Javascript