平常在我们的注册账户的时候经常会有密码强度验证这个功能,今天就用正则的方法来实现这个小功能,案例效果图如下:
1、html代码部分:
<body>
<input type="password" class="password">
<!-- ?? -->
<span class="eye">??</span>
<br>
<p class="warning length">密码长度大于8</p>
<p class="warning lowercase">密码包含小写字母</p>
<p class="warning capital">密码包含大写字母</p>
<p class="warning num">密码包含数字</p>
<p class="warning symbol">密码包含符号</p>
</body>
2、css部分:
<style>
.warning {
font-size: 12px;
color: gray;
}
span {
cursor: pointer;
}
/* 同时有这两个类名 */
.warning.get {
color: yellowgreen;
}
</style>
3、js部分,用正则的方法:
<script src="./js/jquery-1.12.4.min.js"></script>
<script>
// 密码强度验证
// jQ跟js的关系
// jQ是基于js的封装 全部都是js
$(function() {
// 查看 隐藏密码
$('.eye').click(function() {
// 如果type=password ->text
if ($(".password").attr('type') == 'password') {
$(".password").attr('type', 'text');
$(this).html('??');
} else {
$(".password").attr('type', 'password');
$(this).html('??');
}
// 反之变为 password
})
//密码强度验证
// js中的正则写法
// 创建一个正则表达式
// /[0-9]/.test()
// 输入事件 oninput dom的
// 改变事件 onchange (value的值变了) 如果是文本框 需要失去焦点
// jQ只封装了一部分的 js事件
// 如果没有封装的事件 可以使用 on来绑定
// $('.password').input(function(){
$('.password').on('input', function() {
// $('.password').on('change', function () {
// console.log('打字');
// 获取文本框的内容
var thisValue = $(this).val();
// 使用正则
// 数字
/[0-9]/.test(thisValue) ? $('.num').addClass('get') : $('.num').removeClass('get');
// 小写字母
/[a-z]/.test(thisValue) ? $('.lowercase').addClass('get') : $('.lowercase').removeClass('get');
// 大写字母
/[A-Z]/.test(thisValue) ? $('.capital').addClass('get') : $('.capital').removeClass('get');
// 符号
/[^A-Za-z0-9]/.test(thisValue) ? $('.symbol').addClass('get') : $('.symbol').removeClass('get');
// 密码长度
thisValue.length > 8 ? $('.length').addClass('get') : $('.length').removeClass('get');
})
})
</script>