JS对密码强弱的判断

<div class="email_reg m_part">
<form class="reg_form" id="reg_form">
<p>邮箱注册</p>
<div class="control">
<label>邮箱</label><input class="email" name="email">
<span>请填写本人常用邮箱,该邮箱将作为登录账号</span>
</div>
<div class="control">
<label>密码</label><input type="password" name="password">
<span>字母、数字或者英文符号,6-20位</span>
</div>
<div class="control">
<label>确认密码</label><input type="password" name="confirmpwd">
<span>请再次输入密码</span>
</div>
<input class="submit" id="submit_btn" onclick="return false;" type="submit" value="注册">
</form>
</div>

<script>

$("#reg_form").validate({
ok:function(){
alert("登录啦!");
}
});

</script>

(function(jQuery){
"use strict";
(function(factor){
if(jQuery && !jQuery.fn.validate){
factor($);
}
})(function($){
var flagAll = {
email:false,
password:false,
samePwd:false
};
var methods = {
settings:null,
init:function(item){
methods.settings = $.extend(true,{},$.fn.validate.defaults,item);
return this.each(function(){
var cur = $(this);
var checkItem = cur.find("input[name]");
methods.subCheck(cur);
methods.checkItem(checkItem);
});
},
subCheck:function(box){
var btn = box.find("input[type=‘submit‘]");
btn.on("click",function(){
methods.allCheck(box);
});
},
allCheck:function(box){
var checkItem = box.find("input[name]");
$.each(checkItem,function(i,v){
var cur = $(v);
methods.blueE(cur);
methods.checkFmt(cur);
});
if(flagAll.email && flagAll.password && flagAll.samePwd){
alert("submit");
}
},
checkItem:function(item){
$.each(item,function(){
var cur = $(this);
methods.checkSingle(cur);
});
},
checkSingle:function(item){
item.on("blur",function(){
methods.blueE(item);
methods.checkFmt(item);
});
item.keydown(function(e){
var code = e.keyCode;
if(code == 13){
methods.allCheck(item);
}
}).keyup(function(e){
methods.blueE(item);
});
},
blueE:function(item){
var val = item.val();
if(val == ""){
var txt = methods.getType(item);
methods.errorInfo(item,txt);
}else{
var error = item.next(".error");
error.length > 0 ? error.remove() : ‘‘;
//methods.checkFmt(item); 边输入变验证
}
},
getType:function(item){
var type = item.attr("name");
var txt = "";
switch (type){
case "email":
txt = methods.settings.emailTxt;
break;
case "password":
txt = methods.settings.pwdTxt;
break;
case "confirmpwd":
txt = methods.settings.confirmTxt;
break;
}
return txt;
},
checkFmt:function(item){
var val = item.val();
var type = item.attr("name");
switch (type){
case "email":
methods.checkEmailFmt(item,val);
break;
case "password":
methods.checkPwdFmt(item,val);
break;
case "confirmpwd":
methods.checkPwdFmt(item,val,true);
}
},
checkEmailFmt:function(item,val){
var reg,info;
reg =/^([a-zA-Z0-9_-])[email protected]([a-zA-Z0-9_-])+(\.com)$/;
info = "邮箱地址不正确,请重新输入";
var flag = reg.test(val);
if(flag){
flagAll.email= true;
}else{
methods.errorInfo(item,info);
flagAll.email = false;
}
},

checkPwdFmt:function(item,val,state){
var reg,info;
reg = /^[-,.?:;‘"~!`#%<>=_\@\*\$\^\&\(\)\{\}\[\]\/ | 0-9 |A-Z |a-z]{6,20}$/;
info = "请输入6-20位合理字符";
var flag = reg.test(val);
if(flag){
if(state){
methods.checkDoublePwd(val,item);
}else{
methods.checkSafe(val,item);
flagAll.password= true;
}
}else{
methods.errorInfo(item,info);
state ? flagAll.samePwd = false : flagAll.password = false;
}
},
checkDoublePwd:function(val,item){
var pwd = $("input[name=‘password‘]").val();
if(pwd != val){
flagAll.samePwd = false;
var txt = "两次密码不一致,请重新输入";
methods.errorInfo(item,txt);
}else{
flagAll.samePwd = true;
}
},
checkSafe:function(val,item){
var Modes;
for (var i=0;i<val.length;i++){
//密码模式
Modes|=methods.CharMode(val.charCodeAt(i));
}
var level = methods.bitTotal(Modes);
methods.showLevel(level,item);
},
showLevel:function(level,item){
switch (level){
case 1:
var txt = "密码设置太简单,安全性弱";
methods.errorInfo(item,txt,"error");
break;
case 2:
var txt = "密码安全性中";
methods.errorInfo(item,txt,"middlePwd");
break;
default :
var txt = "密码安全性强";
methods.errorInfo(item,txt,"strongPwd");
}
},
CharMode:function(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(num){
var modes=0;
for (var i=0;i<6;i++){
if (num & 1) modes++;
num>>>=1;
}
return modes;
},
/*checkSafe:function(val,item){
var reg1 = /^\d+$/,
reg2 = /^[a-zA-Z]$/,
reg3 = /^(\d*)([a-zA-Z]{1,2})(\d*)$/,
reg4 = /^([a-zA-Z]*)(\d{1,2})([a-zA-Z]*)$/;
var regm = /^([a-zA-Z0-9]*)([-,.?:;‘"~!`#%<>=_\@\*\$\^\&\(\)\{\}\[\]\/]{1,2})([a-zA-Z0-9]*)$/;
if((reg1.test(val) || reg2.test(val) || reg3.test(val) || reg4.test(val)) && val.length == 6){
var txt = "密码设置太简单,安全性弱";
methods.errorInfo(item,txt,"error");
}else if(regm.test(val)){
var txt = "密码安全性中";
methods.errorInfo(item,txt,"middlePwd");
}else{
var txt = "密码安全性强";
methods.errorInfo(item,txt,"strongPwd");
}
},*/
errorInfo:function(item,txt,cls){
var scls = cls || "error";
var div = "<span class=‘validate_cls "+scls+"‘>"+txt+"</span>";
if(item.next(".validate_cls").length == 0){
$(div).insertAfter(item);
}else{
var box = item.next(".validate_cls");
box.html(txt).removeClass().addClass("validate_cls").addClass(scls);
}
}
};
$.fn.validate = function(param){
return methods.init.apply(this,param);
};
$.fn.validate.defaults = {
emailTxt:"请输入邮箱",
pwdTxt:"请输入密码",
confirmTxt:"请确认密码"
};
});
})(jQuery);

时间: 2024-08-29 04:56:26

JS对密码强弱的判断的相关文章

js验证密码强弱

JS密码强度验证 <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"

密码强弱的判断(用正则表达式写)---2017-04-17

实现功能: 1.输入字符要在6-16之间:小于6个字符或大于16个字符时给予提示,而且强弱不显示:为0时,也给予提示: 2.当密码在6-16个字符之间时,如果密码全是数字或全是字母,显示弱:密码是数字与字母的组合,则显示强:若为字母数字加下划线,则为强: 效果图如下:  代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title>

python 使用正则表达式判断密码强弱

学python的re模板,写了个文章发现没人看,所以总结出来经验,理论没人爱,实战的人心,那么既然没人喜欢理论就直接上实战,在实战中精炼理论.不多说直接先上代码 def password_level(password): weak = re.compile(r'^((\d+)|([A-Za-z]+)|(\W+))$') level_weak = weak.match(password) level_middle = re.match(r'([0-9]+(\W+|\_+|[A-Za-z]+))+|

js 代码密码规范系列

在微博上看到一个段子 "老子哪天出任ceo迎娶白富美走上人生巅峰之后,一定要雇两个长腿大熊的妹子.一个帮我想变量名字,一个帮我想git commit的message!" 可以看出 命名方方面面的问题困扰着我这样的人.哈哈哈 函数命名.变量命名等 是频繁困扰我的问题. 函数命名:统一使用动词或者动词+名词形式 ---- fnInit() 如果有内部函数则"_"开头   _fnInit(). 对象方法命名使用fn+对象类名+动词+名词形式   fnAnimateDoRu

Js的三种条件判断语句

Js的三种条件判断语句 If if语句 只有当指定条件为 true 时,使用该语句来执行代码. 语法 if (条件) { 只有当条件为 true 时执行的代码 } if...else 语句 在条件为 true 时执行代码,在条件为 false 时执行其他代码. 语法 if (条件) { 当条件为 true 时执行的代码 } else { 当条件不为 true 时执行的代码 } If...else if...else 语句 使用 if....else if...else 语句来选择多个代码块之一来

倒计时、点击移动变色与注册时,JS验证密码是否正确

<input id="b1" type="button" value="同意(10)" disabled="disabled" /> <script type="text/javascript"> var t = 10; var aa = window.setInterval('a()', 1000); function a() { var b = document.getEleme

JS魔法堂:精确判断IE的文档模式by特征嗅探

一.前言 苦逼的前端攻城狮都深受浏览器兼容之苦,再完成每一项功能前都要左顾右盼,生怕浏览器不支持某个API,生怕原生API内含臭虫因此判断浏览器类型和版本号成了不可绕过的一道关卡,而特征嗅探是继浏览器探测后另一利器处理上述问题. 二.何为特征嗅探 从前我们都是通过对navigator.userAgent或navigator.appName两个属性值进行特定字符串匹配和萃取来区分浏览器类型和获取版本号的.但随着IE8提供可选的文档兼容性模式设置和各种加壳浏览器的出现,导致无法通过navigator

js 检验密码强度

html 代码如下: <!DOCTYPE HTML> <html lang="en"> <head> <meta charset="utf-8"/> <title>密码强度</title> <style type="text/css"> #passStrength{height:6px;width:120px;border:1px solid #ccc;paddi

js中,0的判断

在js中,判断,往往是这样写的 let a; let b; a?b=a:b=-1; console.log(b); 这样写,a为null或者undefined时,没有问题. 可,a为0时(数字零),想打印出来b为0,可打印出来的是b=-1,为什么呢? 因为,在js中,if(0) 判断出来是false. 这时,就应该这样写了 let a=0; let b; (a===0 || a)?b=a:b=-1; console.log(b); 原文地址:https://www.cnblogs.com/ztg