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 相关文章推荐
js实现的真正的iframe高度自适应(兼容IE,FF,Opera)
Mar 07 Javascript
cookie的复制与使用记住用户名实现代码
Nov 04 Javascript
jquery form表单序列化为对象的示例代码
Mar 05 Javascript
JavaScript暂停和继续定时器的实现方法
Jul 18 Javascript
浅谈Node.js:理解stream
Dec 08 Javascript
JS实现仿PS的调色板效果完整实例
Dec 21 Javascript
BootStrap 标题设置跨行无效的解决方法
Oct 25 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
Jun 28 Javascript
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
Apr 28 jQuery
Angular中innerHTML标签的样式不起作用的原因解析
Jun 18 Javascript
vue实现评价星星功能
Jun 30 Javascript
Vue页面跳转传递参数及接收方式
Sep 09 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
建立动态的WML站点(二)
2006/10/09 PHP
PHP实现批量上传单个文件
2015/12/29 PHP
PHP面向对象程序设计重载(overloading)操作详解
2019/06/13 PHP
prototype 1.5相关知识及他人笔记
2006/12/16 Javascript
csdn 博客中实现运行代码功能实现
2009/08/29 Javascript
javascript Object与Function使用
2010/01/11 Javascript
基于JQuery的动态删除Table表格的行和列的代码
2011/05/12 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
Jquery通过JSON字符串创建JSON对象
2014/08/24 Javascript
jQuery/CSS3图片特效插件整理推荐
2014/12/07 Javascript
javascript动态添加删除tabs标签的方法
2015/07/06 Javascript
window.onload绑定多个事件的两种解决方案
2016/05/15 Javascript
老生常谈JavaScript 正则表达式语法
2016/08/20 Javascript
浅谈Javascript中的函数、this以及原型
2016/10/09 Javascript
微信小程序开发之实现选项卡(窗口顶部TabBar)页面切换
2016/11/25 Javascript
基于jQuery实现照片墙自动播放特效
2017/01/12 Javascript
Angular使用$http.jsonp发送跨站请求的方法
2017/03/16 Javascript
js中less常用的方法小结
2017/08/09 Javascript
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
2020/03/06 Javascript
微信小程序实现多行文字滚动
2020/11/18 Javascript
vue 使用rules对表单字段进行校验的步骤
2020/12/25 Vue.js
python操作MySQL数据库的方法分享
2012/05/29 Python
python求斐波那契数列示例分享
2014/02/14 Python
Python中的闭包总结
2014/09/18 Python
详解 Python 与文件对象共事的实例
2017/09/11 Python
python3模块smtplib实现发送邮件功能
2018/05/22 Python
Python利用pandas处理Excel数据的应用详解
2019/06/18 Python
Python3.7 pyodbc完美配置访问access数据库
2019/10/03 Python
如何使用python进行pdf文件分割
2019/11/11 Python
python pip安装包出现:Failed building wheel for xxx错误的解决
2019/12/25 Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
2020/05/22 Python
Python 使用Opencv实现目标检测与识别的示例代码
2020/09/08 Python
教师个人的自我评价分享
2014/01/02 职场文书
学习交流会主持词
2014/04/01 职场文书
大学生在校表现评语
2014/12/31 职场文书
使用 Docker Compose 构建复杂的多容器App
2022/04/30 Servers