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 相关文章推荐
Using the TextRange Object
Oct 14 Javascript
csdn 博客中实现运行代码功能实现
Aug 29 Javascript
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
Dec 06 Javascript
用JQUERY增删元素的代码
Feb 14 Javascript
jquery批量控制form禁用的代码
Aug 06 Javascript
Jquery 在页面加载后执行的几种方式
Mar 14 Javascript
浅析javascript中function 的 length 属性
May 27 Javascript
bootstrap轮播图示例代码分享
May 17 Javascript
JS的Ajax与后端交互数据的实例
Aug 08 Javascript
three.js实现圆柱体
Dec 30 Javascript
基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)
May 07 Javascript
vue中使用GraphQL的实例代码
Nov 04 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
仿Aspnetpager的一个PHP分页类代码 附源码下载
2012/10/08 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
2013/06/17 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
2013/06/19 PHP
linux使用crontab实现PHP执行计划定时任务
2014/05/10 PHP
php实现的zip文件内容比较类
2014/09/24 PHP
什么是OneThink oneThink后台添加插件步骤
2016/04/13 PHP
详解PHP文件的自动加载(autoloading)
2018/02/04 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
laravel开发环境homestead搭建过程详解
2020/07/03 PHP
(仅IE下有效)关于checkbox 三态
2007/05/12 Javascript
各种效果的jquery ui(接口)介绍
2008/09/17 Javascript
JS 对象介绍
2010/01/20 Javascript
JQuery的Validation插件中Remote验证的中文问题
2010/07/26 Javascript
js 代码优化点滴记录
2012/02/19 Javascript
jQuery Ajax提交表单查询获得数据实例代码
2012/09/19 Javascript
javascript实现yield的方法
2013/11/06 Javascript
JavaScript中对象property的删除方法介绍
2014/12/30 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
2017/01/12 NodeJs
js放大镜放大购物图片效果
2017/01/18 Javascript
nodejs个人博客开发第七步 后台登陆
2017/04/12 NodeJs
input输入框内容实时监测(附代码)
2017/08/15 Javascript
ES6扩展运算符用法实例分析
2017/10/31 Javascript
vue生命周期实例小结
2018/08/15 Javascript
简单学习5种处理Vue.js异常的方法
2019/06/17 Javascript
el-table树形表格表单验证(列表生成序号)
2020/05/31 Javascript
Python入门篇之字典
2014/10/17 Python
详解python3中的真值测试
2018/08/13 Python
Python 给定的经纬度标注在地图上的实现方法
2019/07/05 Python
新加坡领先的时尚生活方式零售品牌:CHARLES & KEITH
2018/01/16 全球购物
日本最大的购物网站:日本乐天市场(Rakuten Ichiba)
2020/11/04 全球购物
大学专科生推荐信范文
2013/11/23 职场文书
2015年小学教导处工作总结
2015/05/26 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
Android studio 简单计算器的编写
2022/05/20 Java/Android
CentOS7 minimal 最小化安装网络设置过程
2022/12/24 Servers