JS使用模块化实现用户名密码检测,密码强弱验证,验证码生成

html 页面

  用户名:<input type="text" id="username" name="">
		<br>
	密码:&nbsp;&nbsp;<input type="password" id="userpwd" name="">
	<br>密码强度:<span id="mm"></span><br>
	验证码:<input type="text" id="yzm" name=""> 
	<span id="testSpan"></span>
	<br>
	<input type="button" id="login" value="登录" name=""

JS代码块

var module = (function() {
  var testSpan,msg,Slength,userpwd,userpwd,yzm;
    function print(msg) {
        alert(msg);
    } ;//弹出消息框
  //简单的验证码
   function createyzm(testSpan,Slength){ 
    var str = "0123456789qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM";
    var list = str.split("");
    for (i = 0; i < Slength; i++)
     {
        var index = Math.floor(Math.random() * list.length);
         testSpan.style.backgroundColor="#000";//验证码背景颜色
         testSpan.style.color="#fff";//验证码颜色
         testSpan.style.display="block";
          testSpan.style.textAlign ="center";
         testSpan.style.width="70px";//长度
        testSpan.innerHTML += list[index];
      }

      return  testSpan.innerHTML;


    };
    

    function checkUserpwd(userpwd,errSpan) {
    
			var numCount = (/[0-9]/g).test(userpwd) ? 1 : 0;
			var lowCount = (/[a-z]/g).test(userpwd) ? 1 : 0;
			var uppCount = (/[A-Z]/g).test(userpwd) ? 1 : 0;//二元运算符
			switch (numCount + lowCount + uppCount) {
				case 3:
					errSpan.innerHTML = "强";
					break;
				case 2:
					errSpan.innerHTML = "中";
					break;
				default:
					errSpan.innerHTML = "弱";
					break;
			
			return true;
		}
	};
   
    function check(username,userpwd)
    {  	
    	var uremeber = /^[a-zA-Z0-9_-]{4,16}$/;
    	var username=username.replace(" ","");
        var userpwd=userpwd.replace(" ","");//去空格防止sql注入
    	if(username==""||userpwd=="")
    	{
        print("用户名密码不能为空");
        return false;
        }
        if(!uremeber.test(username)||!uremeber.test(userpwd))
    	{
        print("用户名密码为为4-16位但不限于(数字,字母,下划线)");
        history.go(0);//刷新页面
        return false;

        }
         else  {
          //...
        	return true;
        }
                   
    };

    return {
       checkUserpwd: checkUserpwd,//两个参数userpwd,errSpan errspan为提示密码强弱提示性文字,接受类型是js dom对象 注:jq对象用test方法,
       // userpwd 为用户密码,
       check: check,//用户名,密码,验证码
        createyzm: createyzm,//testSpan,Slength 两个参数testSpan是验证码span标签dom类型对象,Slength是验证码长度
        print: print//alert弹窗
        
    };
})();

var yzm=module.createyzm(document.getElementById("testSpan"),4);

document.getElementById("userpwd").onblur = function(){
   module.checkUserpwd(this.value,document.getElementById('mm'));
}
document.getElementById("login").onclick=function(){	
var a= module.check(document.getElementById("username").value,document.getElementById("userpwd").value);
if(a==true )
{
	if(document.getElementById("yzm").value==yzm)
    {alert("登录成功!");}
else{

alert("验证码错误,请重新输入!");
  history.go(0);//刷新页面

}
}

}
 
  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值