JS正则表达式验证密码强度


Posted in Javascript onMarch 18, 2020

本文实例为大家分享了JS正则表达式验证密码强度的具体代码,供大家参考,具体内容如下

代码1:

<!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:300px;
  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="pwd">密码</label>
 <input type="text" id="pwd" maxlength="16"><!--课外话题-->
 <div>
  <em>密码强度:</em>
  <em id="strength"></em>
  <div id="strengthLevel" class="strengthLv0"></div>
 </div>
</div>
<script src="common.js"></script>
<script>
 
 /*
 *
 * 密码: 数字,字母,特殊符号
 *
 * 密码: 只有数字- 或者是只有字母,或者是只有特殊符号---1级---弱
 * 两两组合: 数字和字母, 数字和特殊符号, 字母和特殊符号  -----2级----中
 * 三者都有: 数字和字母和特殊符号------3级-----强
 *
 * */
 
 //获取文本框注册键盘抬起事件
 my$("pwd").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(pwd) {
  var lvl=0;//默认是0级
  //密码中是否有数字,或者是字母,或者是特殊符号
  if(/[0-9]/.test(pwd)){
   lvl++;
  }
  //判断密码中有没有字母
  if(/[a-zA-Z]/.test(pwd)){
   lvl++;
  }
  //判断密码中有没有特殊符号
  if(/[^0-9a-zA-Z_]/.test(pwd)){
   lvl++;
  }
  return lvl;//1 3
 }
 
</script>
 
</body>
</html>

优化代码2:

<!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:300px;
  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="pwd">密码</label>
 <input type="text" id="pwd" maxlength="16"><!--课外话题-->
 <div>
  <em>密码强度:</em>
  <em id="strength"></em>
  <div id="strengthLevel" class="strengthLv0"></div>
 </div>
</div>
<script src="common.js"></script>
<script>
 
 //获取文本框注册键盘抬起事件
 my$("pwd").onkeyup=function () {
  //每次键盘抬起都要获取文本框中的内容,验证文本框中有什么东西,得到一个级别,然后下面的div显示对应的颜色
  //如果密码的长度是小于6的,没有必要判断
//  if(this.value.length>=6){
//   var lvl= getLvl(this.value);
//   my$("strengthLevel").className="strengthLv"+lvl;
//  }else{
//   my$("strengthLevel").className="strengthLv0";
//  }
  my$("strengthLevel").className="strengthLv"+(this.value.length>=6?getLvl(this.value) :0);
 };
 
 //给我密码,我返回对应的级别
 function getLvl(pwd) {
  var lvl=0;//默认是0级
  //密码中是否有数字,或者是字母,或者是特殊符号
  if(/[0-9]/.test(pwd)){
   lvl++;
  }
  //判断密码中有没有字母
  if(/[a-zA-Z]/.test(pwd)){
   lvl++;
  }
  //判断密码中有没有特殊符号
  if(/[^0-9a-zA-Z_]/.test(pwd)){
   lvl++;
  }
  return lvl;//最小的值是1,最大值是3
 }
 
</script>
</body>
</html>

common.js

/**
 * 获取指定标签对象
 * @param id 标签的id属性值
 * @returns {Element}根据id属性值返回指定标签对象
 */
function my$(id) {
 return document.getElementById(id);
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
List Installed Software Features
Jun 11 Javascript
JavaScript中的prototype.bind()方法介绍
Apr 04 Javascript
Javascript实现的常用算法(如冒泡、快速、鸽巢、奇偶等)
Apr 29 Javascript
jQuery中each()方法用法实例
Dec 27 Javascript
JavaScript的设计模式经典之代理模式
Feb 24 Javascript
jQuery使用deferreds串行多个ajax请求
Aug 22 Javascript
JS动态加载脚本并执行回调操作
Aug 24 Javascript
jQuery点击页面其他部分隐藏下拉菜单功能
Nov 27 jQuery
在 Vue.js中优雅地使用全局事件的方法
Feb 01 Javascript
Vue表单之v-model绑定下拉列表功能
May 14 Javascript
微信小程序实现授权登录
May 15 Javascript
js实现无缝轮播图特效
May 09 Javascript
原生js实现密码强度验证功能
Mar 18 #Javascript
JavaScript实现密码强度实时验证
Mar 18 #Javascript
js如何验证密码强度
Mar 18 #Javascript
js验证密码强度解析
Mar 18 #Javascript
js实现超级玛丽小游戏
Mar 18 #Javascript
vue 封装 Adminlte3组件的实现
Mar 18 #Javascript
JavaScript仿京东秒杀倒计时
Mar 17 #Javascript
You might like
探讨php中header的用法详解
2013/06/07 PHP
php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错
2015/12/07 PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
2018/05/23 PHP
PHP超全局变量实现原理及代码解析
2020/09/01 PHP
node.js中的path.resolve方法使用说明
2014/12/08 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
Javascript中Array用法实例分析
2015/06/13 Javascript
Javascript+CSS3实现进度条效果
2016/10/28 Javascript
一篇文章搞定JavaScript类型转换(面试常见)
2017/01/21 Javascript
jQuery使用EasyUi实现三级联动下拉框效果
2017/03/08 Javascript
Vue2.x中的Render函数详解
2017/05/30 Javascript
详解vue-cli脚手架build目录中的dev-server.js配置文件
2017/11/24 Javascript
js核心基础之闭包的应用实例分析
2019/05/11 Javascript
[48:00]EG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/29 DOTA
利用python操作SQLite数据库及文件操作详解
2017/09/22 Python
Python3利用SMTP协议发送E-mail电子邮件的方法
2017/09/30 Python
Python基于pycrypto实现的AES加密和解密算法示例
2018/04/10 Python
python docx 中文字体设置的操作方法
2018/05/08 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
2018/10/26 Python
解决Python中list里的中文输出到html模板里的问题
2018/12/17 Python
python set内置函数的具体使用
2019/07/02 Python
解决Tensorflow 内存泄露问题
2020/02/05 Python
Django 自定义权限管理系统详解(通过中间件认证)
2020/03/11 Python
使用Python对Dicom文件进行读取与写入的实现
2020/04/20 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
2020/09/01 Python
Python xlwings插入Excel图片的实现方法
2021/02/26 Python
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
高中生毕业自我鉴定范文
2013/12/22 职场文书
小区门卫岗位职责
2013/12/31 职场文书
三问三解心得体会
2014/09/05 职场文书
思想作风建设心得体会
2014/10/22 职场文书
美丽的大脚观后感
2015/06/03 职场文书
法制教育观后感
2015/06/17 职场文书
python 如何在list中找Topk的数值和索引
2021/05/20 Python
Python实现机器学习算法的分类
2021/06/03 Python
详细介绍python操作RabbitMq
2022/04/12 Python