zoukankan      html  css  js  c++  java
  • 分享一个表单校验的验证规则

    直接看正文

    /**
    数据验证(表单验证)
    来自 grace.hcoder.net 
    作者 hcoder 深海
    */
    module.exports = {
    	error:'',
    	check : function (data, rule){
    		for(var i = 0; i < rule.length; i++){
    			if (!rule[i].checkType){return true;}
    			if (!rule[i].name) {return true;}
    			if (!rule[i].errorMsg) {return true;}
    			if (!data[rule[i].name]) {this.error = rule[i].errorMsg; return false;}
    			switch (rule[i].checkType){
    				case 'string':
    					var reg = new RegExp('^.{' + rule[i].checkRule + '}$');
    					if(!reg.test(data[rule[i].name])) {this.error = rule[i].errorMsg; return false;}
    				break;
    				case 'int':
    					var reg = new RegExp('^(-[1-9]|[1-9])[0-9]{' + rule[i].checkRule + '}$');
    					if(!reg.test(data[rule[i].name])) {this.error = rule[i].errorMsg; return false;}
    					break;
    				break;
    				case 'between':
    					if (!this.isNumber(data[rule[i].name])){
    						this.error = rule[i].errorMsg;
    						return false;
    					}
    					var minMax = rule[i].checkRule.split(',');
    					minMax[0] = Number(minMax[0]);
    					minMax[1] = Number(minMax[1]);
    					if (data[rule[i].name] > minMax[1] || data[rule[i].name] < minMax[0]) {
    						this.error = rule[i].errorMsg;
    						return false;
    					}
    				break;
    				case 'betweenD':
    					var reg = /^-?[1-9][0-9]?$/;
    					if (!reg.test(data[rule[i].name])) { this.error = rule[i].errorMsg; return false; }
    					var minMax = rule[i].checkRule.split(',');
    					minMax[0] = Number(minMax[0]);
    					minMax[1] = Number(minMax[1]);
    					if (data[rule[i].name] > minMax[1] || data[rule[i].name] < minMax[0]) {
    						this.error = rule[i].errorMsg;
    						return false;
    					}
    				break;
    				case 'betweenF': 
    					var reg = /^-?[0-9][0-9]?.+[0-9]+$/;
    					if (!reg.test(data[rule[i].name])){this.error = rule[i].errorMsg; return false;}
    					var minMax = rule[i].checkRule.split(',');
    					minMax[0] = Number(minMax[0]);
    					minMax[1] = Number(minMax[1]);
    					if (data[rule[i].name] > minMax[1] || data[rule[i].name] < minMax[0]) {
    						this.error = rule[i].errorMsg;
    						return false;
    					}
    				break;
    				case 'same':
    					if (data[rule[i].name] != rule[i].checkRule) { this.error = rule[i].errorMsg; return false;}
    				break;
    				case 'notsame':
    					if (data[rule[i].name] == rule[i].checkRule) { this.error = rule[i].errorMsg; return false; }
    				break;
    				case 'email':
    					var reg = /^w+([-+.']w+)*@w+([-.]w+)*.w+([-.]w+)*$/;
    					if (!reg.test(data[rule[i].name])) { this.error = rule[i].errorMsg; return false; }
    				break;
    				case 'phoneno':
    					var reg = /^1[0-9]{10,10}$/;
    					if (!reg.test(data[rule[i].name])) { this.error = rule[i].errorMsg; return false; }
    				break;
    				case 'zipcode':
    					var reg = /^[0-9]{6}$/;
    					if (!reg.test(data[rule[i].name])) { this.error = rule[i].errorMsg; return false; }
    				break;
    				case 'reg':
    					var reg = new RegExp(rule[i].checkRule);
    					if (!reg.test(data[rule[i].name])) { this.error = rule[i].errorMsg; return false; }
    				break;
    				case 'in':
    					if(rule[i].checkRule.indexOf(data[rule[i].name]) == -1){
    						this.error = rule[i].errorMsg; return false;
    					}
    				break;
    				case 'notnull':
    					if(data[rule[i].name] == null || data[rule[i].name].length < 1){this.error = rule[i].errorMsg; return false;}
    				break;
    			}
    		}
    		return true;
    	},
    	isNumber : function (checkVal){
    		var reg = /^-?[1-9][0-9]?.?[0-9]*$/;
    		return reg.test(checkVal);
    	}
    }
    
  • 相关阅读:
    1109. Conference 夜
    世界第五大软件商Sage收购中国合作伙伴,及其建筑行业解决方案。
    中小企业ERP美国上演三国演义(微软、Sage、Intuit)
    国内推广微软 Dynamics SL (Solomon)的公司__北京AIT(爱尔的)公司不再推广
    微软的ERP路线图 The Greening of Microsoft (BY Robert L. Mitchell, IDG News Service,09/03/2005 16:50:01)
    ERP企业兼并重组将延续(Sage收购Timberline Software公司)—旧闻
    微软ERP Dynamics SL,真正的施工企业ERP也,适合工程承包商!
    来自国外(美国)的施工企业(承包商)管理软件比较和选择建议 !
    施工企业信息化咨询,我们可以找谁? (续1)
    来自 Ambient Consulting Group 两次回信。
  • 原文地址:https://www.cnblogs.com/codebook/p/12586472.html
Copyright © 2011-2022 走看看