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);
    	}
    }
    
  • 相关阅读:
    Python字符串转码问题
    tcpip详解笔记(21) TCP的路径MTU探测与长肥管道
    sync,fsync,fdatasync,fflush
    tcpip详解笔记(22) telnet协议
    tcpip详解笔记(18)TCP的超时与重传
    tcpip详解笔记(16) TCP的交互数据流
    Get exception description and stack trace which caused an exception
    tcpip详解笔记(20) TCP的Keepalive定时器
    [转]应该知道的Linux技巧
    How to prettyprint JSON script?
  • 原文地址:https://www.cnblogs.com/codebook/p/12586472.html
Copyright © 2011-2022 走看看