Jquery Validate 自定义密码检查

1、密码策略配置



 

2、重置密码对话框



 

3、密码校验相关代码

                	
                	//查询密码策略
			var url_pwd_policy = App.getRootUrl('/identity/v2.0/security-policies/');

                	var pwd_minlength = 6;//最短长度默认值
                	$.ajax({
                		   type: "GET",
                		   async:false,
                		   url: url_pwd_policy+"pwd_minlength",
                		   success: function(data){
                		     pwd_minlength = data.value;
                		   }
                		});
                	var pwd_maxlength = 15;//最大长度默认值
                	$.ajax({
             		   type: "GET",
             		   async:false,
             		   url: url_pwd_policy+"pwd_maxlength",
             		   success: function(data){
             			  pwd_maxlength = data.value;
             		   }
             		});
                	var pwd_include_num = false;//是否必须包含数字
                	$.ajax({
                		   type: "GET",
                		   async:false,
                		   url: url_pwd_policy+"pwd_include_num",
                		   success: function(data){
                			   pwd_include_num = data.value;
                		   }
                		});
                	var pwd_include_lowercase_letter = false;//是否必须包含小写字母
                	$.ajax({
             		   type: "GET",
             		   async:false,
             		   url: url_pwd_policy+"pwd_include_lowercase_letter",
             		   success: function(data){
             			  pwd_include_lowercase_letter = data.value;
             		   }
             		});
                	var pwd_include_uppercase_letter = false;//是否必须包含大写字母
                	$.ajax({
              		   type: "GET",
              		   async:false,
              		   url: url_pwd_policy+"pwd_include_uppercase_letter",
              		   success: function(data){
              			 pwd_include_uppercase_letter = data.value;
              		   }
              		});
                	var pwd_include_special_char = false;//是否必须包含特殊字母
                	$.ajax({
               		   type: "GET",
               		   async:false,
               		   url: url_pwd_policy+"pwd_include_special_char",
               		   success: function(data){
               			pwd_include_special_char = data.value;
               		   }
               		});
                               
                    //中文检测    
                    var regChineseCode = new RegExp("[\\u4E00-\\u9FFF]+","g");
                    jQuery.validator.addMethod("isChineseCode", function(value, element) {  
                    	return ! regChineseCode.test(value);
                    }, "密码不允许使用中文");

		    //数字检测
                    var regNum = /[0-9]/;
                    jQuery.validator.addMethod("includeNum", function(value, element) {  
                    	return regNum.test(value);
                    }, "必须包含数字");

		    //小写字母检测
                    var regLower = /[a-z]/;
                    jQuery.validator.addMethod("includeLowercaseLetter", function(value, element) {  
                    	return regLower.test(value);
                    }, "必须包含小写字母");

		    //大写字母检测
                    var regUpper = /[A-Z]/;
                    jQuery.validator.addMethod("includeUppercasecaseLetter", function(value, element) {  
                    	return regUpper.test(value);
                    }, "必须包含大写字母");

		    //特殊字符检测
                    var regSpecial = /[^A-Za-z0-9]/;
                    jQuery.validator.addMethod("includeSpecialChar", function(value, element) {  
                    	return regSpecial.test(value);
                    }, "必须包含特殊字母");
                    
		    //初始化校验配置项
                    var validateOpts = {
                        errorContainer: $dialog,
                        errorPlacement:"left bottom",
                        rules: {},
                        messages: {}
                    };

		    //原密码校验规则
                    validateOpts.rules['password'+suffix] = {
                        required: true
                    };
                    validateOpts.messages['password'+suffix] = {
                        required: "请填写原密码"
                    };

                    //新密码校验规则
                    validateOpts.rules['newPassword'+suffix] = {
                        required: true,
                        isChineseCode:true,
                        minlength: pwd_minlength,
                        maxlength: pwd_maxlength,
                        notEqualTo: "#password"+suffix
                    };
                    //根据 密码安全策略,动态添加的校验规则
                    if(pwd_include_lowercase_letter == 'true'){
                    	(validateOpts.rules['newPassword'+suffix]).includeLowercaseLetter=true;
                    }
                    if(pwd_include_uppercase_letter == 'true'){
                    	(validateOpts.rules['newPassword'+suffix]).includeUppercasecaseLetter=true;
                    }
                    if(pwd_include_special_char == 'true'){
                    	(validateOpts.rules['newPassword'+suffix]).includeSpecialChar=true;
                    }
                    if(pwd_include_num == 'true'){
                    	(validateOpts.rules['newPassword'+suffix]).includeNum=true;
                    }
                    //重写提示信息
                    validateOpts.messages['newPassword'+suffix] = {
                        required: "请填写新密码",
                        notEqualTo: "新密码不能与原密码相同"
                    };

		    //确认密码校验规则
                    validateOpts.rules['confirmPassword'+suffix] = {
                        required: true,
                        isChineseCode:true,
                        minlength: pwd_minlength,
                        maxlength: pwd_maxlength,
                        equalTo: "#newPassword"+suffix
                    };
                  //根据 密码安全策略,动态添加的校验规则
                    if(pwd_include_lowercase_letter == 'true'){
                    	(validateOpts.rules['confirmPassword'+suffix]).includeLowercaseLetter=true;
                    }
                    if(pwd_include_uppercase_letter == 'true'){
                    	(validateOpts.rules['confirmPassword'+suffix]).includeUppercasecaseLetter=true;
                    }
                    if(pwd_include_special_char == 'true'){
                    	(validateOpts.rules['confirmPassword'+suffix]).includeSpecialChar=true;
                    }
                    if(pwd_include_num == 'true'){
                    	(validateOpts.rules['confirmPassword'+suffix]).includeNum=true;
                    }
                  //重写提示信息
                    validateOpts.messages['confirmPassword'+suffix] = {
                        required: "请确认新密码",
                        equalTo: "两次输入的密码不相同"
                    };

		    //为表单绑定校验规则
		     var $form = $('#form-resetpwd');
                    $form.validate(validateOpts);
                   

                

猜你喜欢

转载自huangqiqing123.iteye.com/blog/2346292