前言
密码,如果设置的太简单,很容易就被攻破,所以很多网站将密码设置的要求设置的挺严格,一般是字母、数字、字符3选2,区分大小写。对于设置得太简单的密码,予以错误提示。或者予以密码等级(低中高)显示,让用户设置高级密码。那如何利用JS实现呢?
代码
链接:https://gist.github.com/xuanfeng/a44f20cb4569d5b4cd5e
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){return false;} return true }, "格式不符合"); // 开始验证 $(".form").validate({ rules: { pwd: { required: true, //必填 minlength: 6, //最小长度 maxlength: 32, //最大长度 strongPsw: true, //密码强度 }, repwd: { required: true, minlength: 6, maxlength: 32, equalTo: "#pwd" //再次填写密码需一致 } } });
原文:http://www.xuanfengge.com/password-contains-letters-case-numbers-at-least-two-of-the-characters.html
转自:密码等级:至少包含字母、大小写数字、字符中的两种 JS实现方案
相关推荐
本文实例讲述了JS实现至少包含字母、大小写数字、字符的密码等级的两种方法。分享给大家供大家参考。具体如下: 前言 密码,如果设置的太简单,很容易就被攻破,所以很多网站将密码设置的要求设置的挺严格,一般是...
JS实现密码校验规则: 数字、字母、小写、大写、特殊字符,以上条件至少满足3个。
本文实例讲述了JavaScript动态检测密码...一般我们的密码会设置为数字、字母(大小写)、特殊符号三类。 强:密码串包含其中三种或以上 中:密码串包含其中两种 弱:密码串包含其中一种 字符类型 二进制表示 AS
i (忽略大小写) m (多行查找) vaScript动态正则表达式问题 请问正则表达式可以动态生成吗? 例如JavaScript中: var str = "strTemp"; 要生成: var re = /strTemp/; 如果是字符连接: var re = "/" + str + ...
简单化一点, 我们可以用 eregi()取代 ereg().eregi()对大小写不敏感, 我们就不需要指定两个范围 "a-z" 和 "A-Z" – 只需要指定一个就可以了: ^[_a-z0-9-]+(\.[_a-z0-9-]+)*$ 后面的服务器名字也是一样,但要去掉...
严格区分大小写 :name 和 Name 所有的语句都是以 ; 来表示结束 所有的标点符号都是英文的 ; 和 ; . 和 。 : 和 : " 和 “ ' 和 ‘ () 和 () [] 和 【】 {} 和 {} 2、注释 单行注释: // 多行注释:...
通常,处理正则表达式的工具会提供一个忽略大小写的选项,如果选中了这个选项,它可以匹配hi,HI,Hi,hI这四种情况中的任意一种。 不幸的是,很多单词里包含hi这两个连续的字符,比如him,history,high等等。用hi来查找...
安装$ meteor add ffxsam:case-converter用法语法: CaseConv.convert(string, format) 返回值: String 不必记住诸如camelcase或hyphen类的特殊格式字符串,您只需传递两个字符即可表明所需的格式,例如: newName ...
其它的运行符可以作用于数字和日期,但不能作用于字符串,大部分的时候,使用gt等字母运算符代替>会有更好的效果,因为 FreeMarker会把>解释成FTL标签的结束字符,当然,也可以使用括号来避免这种情况,如:(x>y)> ...
两个输入字符串均包含1至50个字符(“ A”-“ Z”,“ a”-“ z”或空格),包括或至少一个字母(“ A”-“ Z”,“ a” -'z')。 出口: 两个String之间共有的最大子序列的大小。 参赛范例 输出范例 abcdef 二 ...
有两种方法将JS程序用于文档的元素:通过元素的名称和通过树状结构。这两个方法并非独立的,可能同时存在于相同的脚步中。 基本上对象是可以用脚步控制,或者可编程元素,拥有属性(Property)、事件(Event)以及方法...
(3)根据需要混合使用大小写字母和数字。一个合理协议是,变量中每个单词的第一个字母大写,例如:DateOfBirth。 (4)另一个合理协议是,每个变量名以两个或三个字符缩写开始,这些字符缩写对应于变量要存储...
模块功能包括:更新用户数据、修复用户数据、更新系统统计、更新缓存数据、更新群组数据、更新到期状态等。可根据名功能之下文字说明理解各自功能用途。这里主要介绍一下更新系统统计及更新缓存数据: (1)、...
下面就以两种不同的用户来分析博客网站的需求。 4.2.1注册博友 首先必须在博客首页中登录填写用户名和密码,这样才能执行一些相关操作,不然就是普通用户只能查看一些信息,而不能发表博文。可以在管理页面上添加...
3.所有XML标记都区分大小写; 4.所有标记的属性必须用""括起来; 所以上列语句在XML中正确的写法是 1. sample 2.< b>< i>sample< /i>< /b> 3.< td>sample 4.< font color="red">samplar 另外,XML标记必须...
System.out.printf() 可插入带 % 的输入类型,前两种只可以插入转义符, 不能插入 % 的数据或字符串 在 printf 里面,输出有5个部分 %[argument_index$][flags][width][.precision]conversion 以“%”开头,[第几个...
(4)、模板调用新增“灵动标签”支持直接在模板中输写标签模板,且标签模板支持各种程序代码,更灵活。 80、模板统一的SEO变量,方便制作模板及SEO。 81、全新的默认模板,更清爽。 82、提示信息采用页面形式,更有...
(4)、模板调用新增“灵动标签”支持直接在模板中输写标签模板,且标签模板支持各种程序代码,更灵活。 80、模板统一的SEO变量,方便制作模板及SEO。 81、全新的默认模板,更清爽。 82、提示信息采用页面形式,更...