JavaScript即时判断输入密码的强度
源码示例:
1.javascript代码
- <script type="text/javascript">
- //CharMode函数
- //测试某个字符是属于哪一类.
- function CharMode(iN) {
- if (iN >= 48 && iN <= 57) //数字
- return 1;
- if (iN >= 65 && iN <= 90) //大写字母
- return 2;
- if (iN >= 97 && iN <= 122) //小写
- 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;
- }
- //checkStrong函数
- //返回密码的强度级别
- function checkStrong(sPW) {
- if (sPW.length <= 4)
- return 0; //密码太短
- Modes = 0;
- for (i = 0; i < sPW.length; i++) {
- //测试每一个字符的类别并统计一共有多少种模式.
- Modes |= CharMode(sPW.charCodeAt(i));
- }
- return bitTotal(Modes);
- }
- //pwStrength函数
- //当用户放开键盘或密码输入框失去焦点时,根据不同的级别显示不同的颜色
- function pwStrength(pwd) {
- O_color = "#e0f0ff";
- L_color = "#FF0000";
- M_color = "#FF9900";
- H_color = "#33CC00";
- if (pwd == null || pwd == '') {
- Lcolor = Mcolor = Hcolor = O_color;
- }
- else {
- S_level = checkStrong(pwd);
- switch (S_level) {
- case 0:
- Lcolor = Mcolor = Hcolor = O_color;
- case 1:
- Lcolor = L_color;
- Mcolor = Hcolor = O_color;
- break;
- case 2:
- Lcolor = Mcolor = M_color;
- Hcolor = O_color;
- break;
- default:
- Lcolor = Mcolor = Hcolor = H_color;
- }
- }
- document.getElementById("strength_L").style.background = Lcolor;
- document.getElementById("strength_M").style.background = Mcolor;
- document.getElementById("strength_H").style.background = Hcolor;
- return;
- }
- </script>
2.页面代码
- <table>
- <tr>
- <td align="center" colspan="">注册新帐户</td>
- <td></td>
- </tr>
- <tr>
- <td align="right">
- <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">用户名:</asp:Label>
- </td>
- <td>
- <asp:TextBox ID="UserName" runat="server" CausesValidation="True" ValidationGroup="group1"></asp:TextBox>
- </td>
- <td>
- <asp:Button ID="btnCheck" runat="server" OnClick="btnCheck_Click" Text="检查该用户名是否有效" ValidationGroup="group1" />
- </td>
- <td>
- <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName" ErrorMessage="用户名不能为空" ValidationGroup="group1"></asp:RequiredFieldValidator>
- </td>
- </tr>
- <tr>
- <td align="right">
- 昵称
- </td>
- <td align="left">
- <asp:TextBox ID="txtNickName" runat="server"></asp:TextBox>
- </td>
- <td colspan=""></td>
- </tr>
- <tr>
- <td align="right">
- <asp:Label ID="lblPassword" runat="server" AssociatedControlID="Password">密码:</asp:Label>
- </td>
- <td>
- <asp:TextBox ID="Password" runat="server" TextMode="Password" onKeyUp="pwStrength(this.value)" onBlur="pwStrength(this.value)" CausesValidation="True"></asp:TextBox>
- </td>
- <td>
- <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password" ErrorMessage="必须填写“密码”。"></asp:RequiredFieldValidator>
- </td>
- <td></td>
- </tr>
- <tr>
- <td id="strength_L" align="right" >
- 弱</td>
- <td id="strength_M" align="center">
- 中</td>
- <td id="strength_H" align="left">
- 强</td>
- <td></td>
- </tr>
- <tr>
- <td align="right">
- <asp:Label ID="lblConfirmPassword" runat="server" AssociatedControlID="ConfirmPassword">确认密码:</asp:Label>
- </td>
- <td>
- <asp:TextBox ID="ConfirmPassword" runat="server" TextMode="Password" CausesValidation="True"></asp:TextBox>
- </td>
- <td>
- <asp:RequiredFieldValidator ID="ConfirmPasswordRequired" runat="server" ControlToValidate="ConfirmPassword" ErrorMessage="必须填写“确认密码”" ></asp:RequiredFieldValidator>
- </td>
- <td>
- <asp:CompareValidator ID="PasswordCompare" runat="server" ControlToCompare="Password" ControlToValidate="ConfirmPassword" Display="Dynamic" ErrorMessage="“密码”和“确认密码”必须匹配。" ></asp:CompareValidator>
- </td>
- </tr>
- <tr>
- <td align="right">
- <asp:Label ID="lblMail" runat="server" AssociatedControlID="Email">电子邮箱:</asp:Label>
- </td>
- <td>
- <asp:TextBox ID="Email" runat="server" CausesValidation="True"></asp:TextBox>
- </td>
- <td>
- <asp:RequiredFieldValidator ID="EmailRequired" runat="server" ControlToValidate="Email" ErrorMessage="必须填写“电子邮箱”。"></asp:RequiredFieldValidator>
- </td>
- <td>
- <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="Email" ErrorMessage="电子邮箱格式不正确" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
- </td>
- </tr>
- <tr>
- <td colspan="" align="center">
- <asp:Button ID="btnRegist" runat="server" Text="注册" OnClick="btnRegist_Click" />
- </td>
- <td colspan="" align="left">
- <input id="Reset1" type="reset" value="重置" />
- </td>
- </tr>
- </table>
JavaScript即时判断输入密码的强度的更多相关文章
- 用Javascript评估用户输入密码的强度(Knockout版)
原文:用Javascript评估用户输入密码的强度(Knockout版) 早上看到博友6点多发的一篇关于密码强度的文章(连接),甚是感动(周末大早上还来发文). 我们来看看如果使用Knockout更简 ...
- 用Javascript评估用户输入密码的强度
<!-- 密码已经是我们生活工作中必不可少的工具,但一个不安全的密码有又有可能会给我们造成不必要的损失.作为网站设计者,如果我们在网页中能对用户输入的密码进行安全评估,并显示出相应的提示信息 ...
- Javascript 评估用户输入密码的强度
什么是一个安全的密码呢? 1.如果密码少于5位,那么就认为这是一个弱密码. 2.如果密码只由数字.小写字母.大写字母或其它特殊符号当中的一种组成,则认为这是一个弱密码. 3.如果密码由数字.小写字母. ...
- 输入5至10之间的数字(用javaScript实现判断)
输入5至10之间的数字 ----用javaScript实现判断 代码如下: <!DOCTYPE html><html><body> <script>fu ...
- Javascript中判断数组的正确姿势
在 Javascript 中,如何判断一个变量是否是数组? 最好的方式是用 ES5 提供的 Array.isArray() 方法(毕竟原生的才是最屌的): var a = [0, 1, 2]; con ...
- JavaScript中判断为整数的多种方式
之前记录过JavaScript中判断为数字类型的多种方式,这篇看看如何判断为整数类型(Integer). JavaScript中不区分整数和浮点数,所有数字内部都采用64位浮点格式表示,和Java的d ...
- 关于 JavaScript 数据类型判断
在 JavaScript 中,有 undefined.null.number.string.boolean 五种基本数据类型,另外,有一种复杂数据类型 object ,类似于 C# 中值类型.引用类型 ...
- 子句判断、启动强度和去模糊化--AForge.NET框架的使用(三)
原文:子句判断.启动强度和去模糊化--AForge.NET框架的使用(三) 使用AForge.NET进行模糊运算 上一篇说来一些模糊运算的数学问题,用AForge.NET做相关运算就很简单了. 1.联 ...
- Java与JavaScript中判断两字符串是否相等的区别
JavaScript是一种常用的脚本语言,这也决定了其相对于其他编程语言显得并不是很规范.在JavaScript中判断两字符串是否相等 直接用==,这与C++里的String类一样.而Java里的等号 ...
随机推荐
- Multimodal —— 看图说话(Image Caption)任务的论文笔记(一)评价指标和NIC模型
看图说话(Image Caption)任务是结合CV和NLP两个领域的一种比较综合的任务,Image Caption模型的输入是一幅图像,输出是对该幅图像进行描述的一段文字.这项任务要求模型可以识别图 ...
- 【javascript】ajax的参数
1. 常用参数 url type: contentType: dataType: data: success: error 2. 特殊参数 context: 这个对象用于设置Ajax相关回调函数的上下 ...
- ps-ef|grep-vgrep|grepsep|awk'{print"kill-9"$2}'|sh 这个表达式到底是什么意思啊?
最佳答案 kill 掉sep这个程序ps -ef | 获取当前服务器所有进程grep -v grep 相当于grep自己吧自己过滤掉,就是不显示grepgrep seq 过滤出seqawk 截取 ...
- 处理Oracle数据中的无效对象
今天还原了一份数据库(在服务器上没有无效对象),还原在本地之后有三十几个无效对象,当时很是郁闷,然后我发现还原之后的数据库中缺少表! 开始我怀疑Oracle数据库的还原功能,但是在我创建表的时候发现, ...
- Python初学基础
初入坑Python,打算跟着沫凡小哥的学习视频打个基础,此篇文章做一些简单的学习记录,加油加油加油啦 沫凡小哥的学习网站:https://morvanzhou.github.io/tutorial ...
- 七月SSL行业新闻回顾
大事件一:被泄露的私钥和基于假私钥进行的撤回 上个月,我们报告说Spotify和Cisco在应用程序中捆绑了有效证书的私钥.这些证书将根据基准要求被撤销,但应用程序不是泄露私钥的唯一来源.Koen R ...
- MySQL 6.0安装图解
MySQL 6.0安装图解 由于免费,MySQL数据库在项目中用的越来越广泛,而且它的安全性能也特别高,不亚于oracle这样的大型数据库软件.可以简单的说,在一些中小型的项目中,使用MySQL ,P ...
- CSS3基础(2)—— 文字与字体相关样式、盒子类型、背景与边框相关样式、变形处理、动画功能
一. CSS3 文字与字体相关样式 1. 给文字添加阴影 text-shadow: length length length ccolor; 属性适用于文本阴影,指定了水平阴影,垂直阴影,模糊的距离, ...
- master log 与relay log的关系
--master log 与relay log的关系 -------------------------------2014/06/09 Just to clarify, there are thre ...
- linux桌面创建快捷方式
1使用命令行创建桌面快捷方式 要为特定程序或命令创建桌面快捷方式,你可以使用任意文本编辑器创建一个.desktop文件,然后把它放到/usr/share/applications或者~/.local/ ...