JS 密码强度校验的正则表达式(简单且好用)
- 作者: 空白ALone
- 来源: 51数据库
- 2021-08-20
最近一直在做通行证项目,里面的注册模块中输入密码需要显示密码强度(低中高)。今天就把做的效果给大家分享下,代码没有网上搜索的那么复杂,能够满足一般的需求。
html 代码如下:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>密码强度</title>
<style type="text/css">
#passstrength{height:6px;width:120px;border:1px solid #ccc;padding:2px;}
.strengthlv1{background:red;height:6px;width:40px;}
.strengthlv2{background:orange;height:6px;width:80px;}
.strengthlv3{background:green;height:6px;width:120px;}
</style>
</head>
<body>
<input type="password" name="pass" id="pass" maxlength="16"/>
<div class="pass-wrap">
<em>密码强度:</em>
<div id="passstrength"></div>
</div>
</body>
</html>
<script type="text/javascript" src="js/passwordstrength.js"></script>
<script type="text/javascript">
new passwordstrength('pass','passstrength');
</script>
js 代码如下:
function passwordstrength(passwordid,strengthid){
this.init(strengthid);
var _this = this;
document.getelementbyid(passwordid).onkeyup = function(){
_this.checkstrength(this.value);
}
};
passwordstrength.prototype.init = function(strengthid){
var id = document.getelementbyid(strengthid);
var div = document.createelement('div');
var strong = document.createelement('strong');
this.ostrength = id.appendchild(div);
this.ostrengthtxt = id.parentnode.appendchild(strong);
};
passwordstrength.prototype.checkstrength = function (val){
var alvtxt = ['','低','中','高'];
var lv = 0;
if(val.match(/[a-z]/g)){lv++;}
if(val.match(/[0-9]/g)){lv++;}
if(val.match(/(.[^a-z0-9])/g)){lv++;}
if(val.length < 6){lv=0;}
if(lv > 3){lv=3;}
this.ostrength.classname = 'strengthlv' + lv;
this.ostrengthtxt.innerhtml = alvtxt[lv];
};
效果图:

使用说明:
1、对象的第一个参数是密码输入框的 id,第二个参数是密码强度长条的 id。
2、checkstrength 方法中可以自定义密码强度的规则。
3、密码强度显示低中高分别对应 3 个 css 样式(strengthlv1、strengthlv2、strengthlv3)。
以上所述是小编给大家介绍的js 密码强度校验的正则表达式,希望对大家有所帮助
推荐阅读
