代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style type="text/css">
#dv{
width: 300px;
height:200px;
position: absolute;
left:300px;
top:100px;
}
.strengthLv0 {
height: 10px;
width: 120px;
border: 1px solid #ccc;
padding: 2px;
}
.strengthLv1 {
background: red;
height: 10px;
width: 40px;
border: 1px solid #ccc;
padding: 2px;
}
.strengthLv2 {
background: orange;
height: 10px;
width: 80px;
border: 1px solid #ccc;
padding: 2px;
}
.strengthLv3 {
background: green;
height: 10px;
width: 120px;
border: 1px solid #ccc;
padding: 2px;
}
</style>
<body>
<div id="dv">
<label for="pwd">密码</label>
<input type="text" id="pwd" maxlength="16">
<div>
<em>密码强度:</em>
<div id="strengthLevel" class="strengthLv0"></div>
</div>
</div>
<script>
var pwd = document.getElementById("pwd");
var ss = document.getElementById("strengthLevel");
pwd.onkeyup = function(){
if(this.value.length > 0){
var lvl = getpassword(this.value);
ss.className = "strengthLv"+lvl;
}else{
ss.className = "strengthLv0";
}
};
function getpassword(pwd){
var lvl = 0;
if(/[0-9]/.test(pwd)){
lvl++;
}
if(/[a-zA-Z]/.test(pwd)){
lvl++;
}
if(/[^0-9a-zA-Z]/.test(pwd)){
lvl++;
}
return lvl;
}
</script>
</body>
</html>
演示