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 相关文章推荐
各浏览器对click方法的支持差异小结
Jul 31 Javascript
javascript返回顶部效果(自写代码)
Jan 06 Javascript
关于js注册事件的常用方法
Apr 03 Javascript
JavaScript判断前缀、后缀是否是空格的方法
Apr 15 Javascript
玩转JavaScript OOP - 类的实现详解
Jun 08 Javascript
Vue插件打包与发布的方法示例
Aug 20 Javascript
element-ui表格数据转换的示例代码
Aug 24 Javascript
js隐式转换的知识实例讲解
Sep 28 Javascript
详解vue项目中调用百度地图API使用方法
Apr 25 Javascript
vue+element创建动态的form表单及动态生成表格的行和列
May 20 Javascript
JavaScript Array对象基本方法详解
Sep 03 Javascript
React 父子组件通信的实现方法
Dec 05 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中定义网站根目录的常用方法
2010/08/08 PHP
php通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
php获取本周星期一具体日期的方法
2015/04/20 PHP
Yii2表单事件之Ajax提交实现方法
2017/05/04 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
JS代码放在head和body中的区别分析
2011/12/01 Javascript
在线一元二次方程计算器实例(方程计算器在线计算)
2013/12/22 Javascript
ajax如何实现页面局部跳转与结果返回
2015/08/24 Javascript
JavaScript中获取Radio被选中的值
2015/11/11 Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
2016/08/23 Javascript
jquery延迟对象解析
2016/10/26 Javascript
RGB和YUV 多媒体编程基础详细介绍
2016/11/04 Javascript
浅谈html转义及防止javascript注入攻击的方法
2016/12/04 Javascript
JS使用cookie实现只出现一次的广告代码效果
2017/04/22 Javascript
Vue-cli创建项目从单页面到多页面的方法
2017/09/20 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
vue超时计算的组件实例代码
2018/07/09 Javascript
vue-cli3跨域配置的简单方法
2019/09/06 Javascript
vuex state中的数组变化监听实例
2019/11/06 Javascript
JavaScript实现表单验证功能
2020/12/09 Javascript
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
2018/12/02 Python
python实现维吉尼亚加密法
2019/03/20 Python
Django异步任务之Celery的基本使用
2019/03/23 Python
python自制包并用pip免提交到pypi仅安装到本机【推荐】
2019/06/03 Python
使用Python脚本zabbix自定义key监控oracle连接状态
2019/08/28 Python
Python 识别12306图片验证码物品的实现示例
2020/01/20 Python
python 装饰器的基本使用
2021/01/13 Python
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
俄罗斯GamePark游戏商店网站:购买游戏、游戏机和配件
2020/03/13 全球购物
自荐信包含哪些内容
2013/10/30 职场文书
认识深刻的检讨书
2014/02/16 职场文书
追悼会答谢词
2015/01/05 职场文书
Python通过m3u8文件下载合并ts视频的操作
2021/04/16 Python
Vue + iView实现Excel上传功能的完整代码
2021/06/22 Vue.js
使用Cargo工具高效创建Rust项目
2022/08/14 Javascript