vue密码强度校验
可直接复制使用,根据自己所需再更改!
<template>
<div class="container">
<label style="margin-left:40px;">密码:</label>
<input v-model="pwdee" id="inputValue" auto-complete="off" />
<br />
<div class="input_span">
<label style="margin-left:40px;">强度:</label>
<span id="one"></span>
<span id="two"></span>
<span id="three"></span>
</div>
<div id="font">
<span>弱</span>
<span>中</span>
<span>强</span>
</div>
</div>
</template>
<script>
export default {
data() {
return { msgText: "", pwdee: "" };
},
methods: {
checkStrong(sValue) {
var modes = 0;
//正则表达式验证符合要求的
if (sValue.length < 1) return modes;
if (/\d/.test(sValue)) modes++; //数字
if (/[a-z]/.test(sValue)) modes++; //小写
if (/[A-Z]/.test(sValue)) modes++; //大写
if (/\W/.test(sValue)) modes++; //特殊字符
//逻辑处理
switch (modes) {
case 1:
return 1;
break;
case 2:
return 2;
break;
case 3:
case 4:
return sValue.length < 4 ? 3 : 4;
break;
}
return modes;
}
},
components: {},
watch: {
pwdee(newname, oldname) {
this.msgText = this.checkStrong(newname);
if (this.msgText > 1 || this.msgText == 1) {
document.getElementById("one").style.background = "red";
} else {
document.getElementById("one").style.background = "#eee";
}
if (this.msgText > 2 || this.msgText == 2) {
document.getElementById("two").style.background = "orange";
} else {
document.getElementById("two").style.background = "#eee";
}
if (this.msgText == 4) {
document.getElementById("three").style.background = "#00D1B2";
} else {
document.getElementById("three").style.background = "#eee";
}
}
}
};
</script>
<style scoped>
#inputValue {
width: 240px;
margin-left: 20px;
padding-left: 10px;
border-radius: 3px;
}
.input_span span {
display: inline-block;
width: 85px;
height: 10px;
background: #eee;
line-height: 20px;
}
#one {
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
border-right: 0px solid;
margin-left: 20px;
margin-right: 3px;
}
#two {
border-left: 0px solid;
border-right: 0px solid;
margin-left: -5px;
margin-right: 3px;
}
#three {
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
border-left: 0px solid;
margin-left: -5px;
}
#font span:nth-child(1) {
color: red;
margin-left: 80px;
}
#font span:nth-child(2) {
color: orange;
margin: 0 60px;
}
#font span:nth-child(3) {
color: #00d1b2;
}
</style>