JavaScript正则验证密码强弱度

流楚丶格念 2021-07-20 03:52:51
javascript


展示

在这里插入图片描述

设计

密码强弱度分析

密码由数字,字母,特殊符号组成

  • 密码: 只有数字- 或者是只有字母,或者是只有特殊符号——1级:弱
  • 两两组合: 数字和字母, 数字和特殊符号, 字母和特殊符号——2级:中
  • 三者都有: 数字和字母和特殊符号——3级:强

代码

版本一:基本

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<style type="text/css">
#dv{
width: 300px;
height:200px;
position: absolute;
left:100px;
top:100px;
}
.strengthLv0 {
height: 6px;
width: 120px;
border: 1px solid #ccc;
padding: 2px;
}
.strengthLv1 {
background: red;
height: 6px;
width: 40px;
border: 1px solid #ccc;
padding: 2px;
}
.strengthLv2 {
background: orange;
height: 6px;
width: 80px;
border: 1px solid #ccc;
padding: 2px;
}
.strengthLv3 {
background: green;
height: 6px;
width: 120px;
border: 1px solid #ccc;
padding: 2px;
}
</style>
<body>
<div id="dv">
<label for="password">密码</label>
<input type="text" id="password" maxlength="16">
<div>
<b>密码强度:</b>
<em id="strength"></em>
<div id="strengthLevel" class="strengthLv0"></div>
</div>
</div>
<script>
function my$(id) {
return document.getElementById(id);
}
//获取文本框注册键盘抬起事件
my$("password").onkeyup=function () {
//每次键盘抬起都要获取文本框中的内容,验证文本框中有什么东西,得到一个级别,然后下面的div显示对应的颜色
//如果密码的长度是小于6的,没有必要判断
if(this.value.length>=6){
var lvl=getLvl(this.value);
if(lvl==1){
//弱
my$("strengthLevel").className="strengthLv1";
}else if(lvl==2){
my$("strengthLevel").className="strengthLv2";
}else if(lvl==3){
my$("strengthLevel").className="strengthLv3";
}else{
my$("strengthLevel").className="strengthLv0";
}
}else{
my$("strengthLevel").className="strengthLv0";
}
};
//给我密码,我返回对应的级别
function getLvl(password) {
var lvl=0;//默认是0级
//密码中是否有数字,或者是字母,或者是特殊符号
if(/[0-9]/.test(password)){
lvl++;
}
//判断密码中有没有字母
if(/[a-zA-Z]/.test(password)){
lvl++;
}
//判断密码中有没有特殊符号
if(/[^0-9a-zA-Z_]/.test(password)){
lvl++;
}
return lvl;//1 3
}
</script>
</body>
</html>

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.

上面代码有点冗余,我们对其进行升级改写

版本二:升级


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<style type="text/css">
#dv{
width: 300px;
height:200px;
position: absolute;
left:100px;
top:100px;
}
.strengthLv0 {
height: 6px;
width: 120px;
border: 1px solid #ccc;
padding: 2px;
}
.strengthLv1 {
background: red;
height: 6px;
width: 40px;
border: 1px solid #ccc;
padding: 2px;
}
.strengthLv2 {
background: orange;
height: 6px;
width: 80px;
border: 1px solid #ccc;
padding: 2px;
}
.strengthLv3 {
background: green;
height: 6px;
width: 120px;
border: 1px solid #ccc;
padding: 2px;
}
</style>
<body>
<div id="dv">
<label for="password">密码</label>
<input type="text" id="password" maxlength="16"><!--课外话题-->
<div>
<b>密码强度:</b>
<em id="strength"></em>
<div id="strengthLevel" class="strengthLv0"></div>
</div>
</div>
<!-- <script src="common.js"></script> -->
<script>
function my$(id) {
return document.getElementById(id);
}
//获取文本框注册键盘抬起事件
my$("password").onkeyup=function () {
//每次键盘抬起都要获取文本框中的内容,验证文本框中有什么东西,得到一个级别,然后下面的div显示对应的颜色
my$("strengthLevel").className="strengthLv"+(this.value.length>=6?getLvl(this.value) :0);
};
//给我密码,我返回对应的级别
function getLvl(password) {
var lvl=0;//默认是0级
//密码中是否有数字,或者是字母,或者是特殊符号
if(/[0-9]/.test(password)){
lvl++;
}
//判断密码中有没有字母
if(/[a-zA-Z]/.test(password)){
lvl++;
}
//判断密码中有没有特殊符号
if(/[^0-9a-zA-Z_]/.test(password)){
lvl++;
}
return lvl;//最小的值是1,最大值是3
}
</script>
</body>
</html>

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
版权声明
本文为[流楚丶格念]所创,转载请带上原文链接,感谢
https://blog.51cto.com/u_15265965/2891966

  1. 【django轻量级框架】Django项目导入css,js,images等静态文件
  2. 2.4.5全局样式与局部样式和2.4.6 CSS变量-页面样式与布局【uni-app从入门到精通在线教程(黄菊华-跨平台开发系列教程)】
  3. 微信小程序界面设计小程序中的WXSS(css)选择器课程-::first-line 伪元素
  4. 微信小程序界面设计小程序中的WXSS(css)选择器课程-伪类-:empty 伪类
  5. 微信小程序界面设计小程序中的WXSS(css)选择器课程-伪类-:checked 伪类(不支持)
  6. 微信小程序界面设计小程序中的WXSS(css)选择器课程-子元素选择器
  7. 微信小程序界面设计小程序中的WXSS(css)选择器课程-相邻兄弟选择器
  8. 微信小程序界面设计小程序中的WXSS(css)选择器课程-后代选择器
  9. 微信小程序界面设计小程序中的WXSS(css)选择器课程-属性选择器
  10. 微信小程序界面设计小程序中CSS3样式精通课程-框大小box-sizing
  11. 微信小程序界面设计小程序中CSS3样式精通课程-多列-Columns列的宽度和列数
  12. 微信小程序界面设计小程序中的WXSS(css)选择器课程-伪类-:last-of-type 伪类
  13. 微信小程序界面设计小程序中的WXSS(css)选择器课程-伪类-:only-child 伪类
  14. 微信小程序界面设计小程序中的WXSS(css)选择器课程-伪类-:only-of-type 伪类
  15. 微信小程序界面设计小程序中的WXSS(css)选择器课程-::after伪元素
  16. 微信小程序界面设计小程序中的WXSS(css)选择器课程-::before伪元素
  17. 微信小程序界面设计小程序中的WXSS(css)选择器课程-伪类-:nth-last-of-type()伪类
  18. 微信小程序界面设计小程序中的WXSS(css)选择器课程-伪类-:nth-of-type() 伪类
  19. 微信小程序界面设计小程序中的WXSS(css)选择器课程-伪类-:last-child 伪类
  20. 微信小程序界面设计小程序中的WXSS(css)选择器课程-伪类-:disabled | :enabled 伪类
  21. 微信小程序界面设计小程序中的WXSS(css)选择器课程-伪类-:first-child 伪类
  22. 微信小程序界面设计小程序中的WXSS(css)选择器课程-伪类-:first-of-type 伪类
  23. 微信小程序界面设计小程序中的WXSS(css)选择器课程-伪类-:focus 伪类
  24. 微信小程序界面设计小程序中的WXSS(css)选择器课程-派生选择器
  25. 微信小程序界面设计小程序中的WXSS(css)选择器课程-伪类-:nth-child() 伪类
  26. 微信小程序界面设计小程序中的WXSS(css)选择器课程-选择器的分组
  27. HTML基础-简介
  28. ASP实战之HTML入门-黄菊华-专题视频课程
  29. 微信小程序WxParse解析富文本(html)代码在线视频教程
  30. HTML语言基础.上
  31. HTML语言基础.下
  32. HTML!
  33. 【网页前端设计Front end】HTML语言基础.上(看不懂你来打我)
  34. 【网页前端设计Front end】HTML语言基础.下(看不懂你来打我)
  35. 【django轻量级框架】HTML上传文件拦截到本地
  36. HTML5基础知识实战演练教程-黄菊华-专题视频课程
  37. 基于WEB的HTML5购物网站、H5电商购物平台网上商城网站毕业设计(1)商城首页
  38. 基于WEB的HTML5购物网站、H5电商购物平台网上商城网站毕业设计(2)商城分类
  39. Introduction of modern JavaScript chart library apexcharts.js | software
  40. 微信小程序框架weui的基础使用
  41. 一文入魂!彻底巩固你的Nginx知识体系!
  42. Nginx是什么?有哪些核心技术?
  43. Nginx配置如何一键生成
  44. 就这一次把网路的几种IO模型以及Nginx基本原理彻底搞清楚
  45. 优质高效,阿里性能怪兽宝典(Redis+Nginx)限时开源,手慢无!
  46. Nginx的配置文件nginx.conf配置解释
  47. 安装的nginx 地址重写
  48. nginx防盗链
  49. nginx动静分离
  50. nginx优化
  51. Nginx虚拟主机
  52. Nginx 反向代理
  53. IDEA实现热部署前端界面(Tomcat、IDEA)
  54. JavaScript中call与apply的区别
  55. JavaScript代码无分号问题
  56. 在Chrome浏览器中禁用JavaScript
  57. JavaScript为内置对象添加原型方法
  58. JavaScript原型数据共享与方法共享探究
  59. JavaScript把局部变量变成全局变量
  60. JavaScript函数自调用