【WEB前端|H5实例】HTML+CSS+JS实现修改密码的密码强度判断

代码如下

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
		<style type="text/css">
            .default {
				background: #eeeeee;
				display: inline-block;
				width: 70px;
				height: 30px;
				line-height: 30px;
				text-align: center;
				margin: 4px 2px;
			}
			.weak {
				background: #FF0000;
				display: inline-block;
				width: 70px;
				height: 30px;
				line-height: 30px;
				text-align: center;
				margin: 4px 2px;
				}
			.medium {
				background: #FF9900;
				display: inline-block;
				width: 70px;
				height: 30px;
				line-height: 30px;
				text-align: center;
				margin: 4px 2px;
				}
			.strong {
				background: #81c234;
				display: inline-block;
				width: 70px;
				height: 30px;
				line-height: 30px;
				text-align: center;
				margin: 4px 2px;
				}
		    .aaa{
				display: inline-block;
				width: 70px;
				height: 30px;
				line-height: 30px;
				background: #ddd;
				text-align: center;
				margin: 4px 2px;}
		</style>
    </head>
    <script type="text/javascript">
        window.onload = function(){

            var oInput = document.getElementById('pwd');
            oInput.value = '';
            var spans = document.getElementsByTagName('span');
						var spans1=[];
						var j=0;
						for(var i=0;i<spans.length;i++)
						{
							if(spans[i].className=="aaa"){
								spans1[j]=spans[i];
								j++;
							}
							else{
								
							}
						}
            oInput.onkeyup = function(){
                //强度状态设为默认
								
                spans1[0].className = spans1[1].className = spans1[2].className = "default";
								
                var pwd = this.value;
                var result = 0;
                for(var i = 0, len = pwd.length; i < len; ++i){
                    result |= charType(pwd.charCodeAt(i));
                }

                var level = 0;
                //对result进行四次循环,计算其level
                for(var i = 0; i <= 4; i++){
                    if(result & 1){
                        level ++;
                    }
                    //右移一位
                    result = result >>> 1;
                }

                if(pwd.length >= 6){
                    switch (level) {
                        case 1:
                            spans1[0].className = "weak";
                            break;
                        case 2:
                            spans1[0].className = "medium";
                            spans1[1].className = "medium";
                            break;
                        case 3:
                        case 4:
                            spans1[0].className = "strong";
                            spans1[1].className = "strong";
                            spans1[2].className = "strong";
                            break;
                    }
                }
            }
        }
        /*
            定义一个函数,对给定的数分为四类(判断密码类型),返回十进制1,2,4,8
            数字 0001 -->1  48~57
            小写字母 0010 -->2  97~122
            大写字母 0100 -->4  65~90
            特殊 1000 --> 8 其它
        */
        function charType(num){
            if(num >= 48 && num <= 57){
                return 1;
            }
            if (num >= 97 && num <= 122) {
                return 2;
            }
            if (num >= 65 && num <= 90) {
                return 4;
            }
            return 8;
        }
    </script>
    <body>				
		<span>请输入密码:</span>
		<input type="password" name="pwd" id="pwd"/ class="input"value autocomplete="off"  />
		<span>密  码  强  度:</span>
		<span class="aaa">弱</span>
		<span class="aaa">中</span>
		<span class="aaa">强</span>
	</body>
</html>


效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

感谢

https://blog.csdn.net/yeoman92/article/details/53367570

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值