JS实现至少包含字母、大小写数字、字符的密码等级的两种方法


Posted in Javascript onFebruary 03, 2015

本文实例讲述了JS实现至少包含字母、大小写数字、字符的密码等级的两种方法。分享给大家供大家参考。具体如下:

前言

密码,如果设置的太简单,很容易就被攻破,所以很多网站将密码设置的要求设置的挺严格,一般是字母、数字、字符3选2,区分大小写。对于设置得太简单的密码,予以错误提示。或者予以密码等级(低中高)显示,让用户设置高级密码。那如何利用JS实现呢?

实现代码如下:

function passwordLevel(password) {
 var Modes = 0;
 for (i = 0; i < password.length; i++) {
 Modes |= CharMode(password.charCodeAt(i));
 }
 return bitTotal(Modes);
 //CharMode函数
 function CharMode(iN) {
 if (iN >= 48 && iN <= 57)//数字
  return 1;
 if (iN >= 65 && iN <= 90) //大写字母
  return 2;
 if ((iN >= 97 && iN <= 122) || (iN >= 65 && iN <= 90))
 //大小写
  return 4;
 else
  return 8; //特殊字符
 }
 //bitTotal函数
 function bitTotal(num) {
 modes = 0;
 for (i = 0; i < 4; i++) {
  if (num & 1) modes++;
  num >>>= 1;
 }
 return modes;
 }
}

使用

普通使用

使用语法:passwordLevel(string)
验证规则:数字、大写字母、小写字母、特殊字符
函数结果:返回密码中包含的规则数
运行例子:

passwordLevel("123456") //返回1

passwordLevel("Abc'123456") //返回4

结合jquery.validate.js使用:

//添加验证方法:至少包含两种规则

$.validator.addMethod("strongPsw",function(value,element){
 if(passwordLevel(value)==1){returnfalse;}
 returntrue
},"格式不符合");
//开始验证

$(".form").validate({
 rules:{
 pwd:{
  required:true, //必填
  minlength:6, //最小长度
  maxlength:32, //最大长度
  strongPsw:true, //密码强度
 },
 repwd:{
  required:true,
  minlength:6,
  maxlength:32,
  equalTo:"#pwd" //再次填写密码需一致
 }
 }
});

关于密码生成与强度检测感兴趣的朋友还可参考在线工具:

密码安全性在线检测

高强度密码生成器

短链(短网址)在线生成工具

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript学习点滴 call、apply的区别
Oct 22 Javascript
实现局部遮罩与关闭原理及代码
Feb 04 Javascript
jQuery替换textarea中换行的方法
Jun 10 Javascript
js学习之----深入理解闭包
Nov 21 Javascript
javascript中Number的方法小结
Nov 21 Javascript
bootstrap datepicker插件默认英文修改为中文
Jul 28 Javascript
Bootstrap table使用方法记录
Aug 23 Javascript
JS插件clipboard.js实现一键复制粘贴功能
Dec 04 Javascript
vue-cli 3.x配置跨域代理的实现方法
Apr 12 Javascript
vue.js多页面开发环境搭建过程
Apr 24 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
Sep 02 Javascript
React自定义hook的方法
Jun 25 Javascript
Javascript中call和apply函数的比较和使用实例
Feb 03 #Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
Feb 03 #Javascript
jQuery内部原理和实现方式浅析
Feb 03 #Javascript
jQuery中extend函数的实现原理详解
Feb 03 #Javascript
jQuery中noconflict函数的实现原理分解
Feb 03 #Javascript
jQuery中的pushStack实现原理和应用实例
Feb 03 #Javascript
JavaScript闭包详解
Feb 02 #Javascript
You might like
php里array_work用法实例分析
2015/07/13 PHP
php 使用curl模拟登录人人(校内)网的简单实例
2016/06/06 PHP
php字符集转换
2017/01/23 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
JavaScript的递归之递归与循环示例介绍
2013/08/05 Javascript
NodeJS与Mysql的交互示例代码
2013/08/18 NodeJs
JQuery筛选器全系列介绍
2013/08/27 Javascript
js判断当前浏览器类型,判断IE浏览器方法
2014/06/02 Javascript
JQuery中attr方法和removeAttr方法用法实例
2015/05/18 Javascript
基于angularJS的表单验证指令介绍
2016/10/21 Javascript
js实现随机抽选效果、随机抽选红色球效果
2017/01/13 Javascript
AngularJS封装$http.post()实例详解
2017/05/06 Javascript
Vue如何从1.0迁移到2.0
2017/10/19 Javascript
Vue.js 表单控件操作小结
2018/03/29 Javascript
javascript深拷贝、浅拷贝和循环引用深入理解
2018/05/27 Javascript
Angular5中提取公共组件之radio list的实例代码
2018/07/10 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
js 计算月/周的第一天和最后一天代码
2020/02/01 Javascript
JavaScript中的this基本问题实例小结
2020/03/09 Javascript
element-ui中el-upload多文件一次性上传的实现
2020/12/02 Javascript
python中django框架通过正则搜索页面上email地址的方法
2015/03/21 Python
在dataframe两列日期相减并且得到具体的月数实例
2018/07/03 Python
解决Pandas的DataFrame输出截断和省略的问题
2019/02/08 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
2019/08/06 Python
面向对象学习之pygame坦克大战
2019/09/11 Python
python中的TCP(传输控制协议)用法实例分析
2019/11/15 Python
PyQt5中向单元格添加控件的方法示例
2020/03/24 Python
keras之权重初始化方式
2020/05/21 Python
python自定义函数def的应用详解
2020/06/03 Python
电气工程及自动化专业自荐书范文
2013/12/18 职场文书
财务总监管理岗位职责
2014/03/08 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
财务管理专业自荐书
2014/09/02 职场文书
民间借贷纠纷案件代理词
2015/05/26 职场文书
只用20行Python代码实现屏幕录制功能
2021/06/02 Python
MySQL8.0升级的踩坑历险记
2021/11/01 MySQL