| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 | /**数据验证(表单验证)来自 grace.hcoder.net 作者 hcoder 深海版权声明 : GraceUI 的版权约束是不能转售或者将 GraceUI 直接发布到公开渠道!侵权必究,请遵守版权约定!*/module.exports = {	error:'',	check : function (dataBeCheck, rule){		dataBeCheck = JSON.stringify(dataBeCheck);		var data = JSON.parse(dataBeCheck);		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] || data[rule[i].name] == '') {this.error = rule[i].errorMsg; return false;}			// 检查前去除内容的空格及换行			if(typeof(data[rule[i].name]) == 'string'){data[rule[i].name] = data[rule[i].name].replace(/\s/g,"");}			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 ruleArr = rule[i].checkRule.split(',');					if(rule.length < 2){						ruleArr[0] = Number(ruleArr[0]) - 1;						ruleArr[1] = '';					}else{						ruleArr[0] = Number(ruleArr[0]) - 1;						ruleArr[1] = Number(ruleArr[1]) - 1;					}					var reg = new RegExp('^(-[1-9]|[1-9])[0-9]{' + ruleArr[0] + ',' + ruleArr[1] + '}$');					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 = /^-?\d+$/;					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;				case 'samewith': 					if(data[rule[i].name] != data[rule[i].checkRule]){this.error = rule[i].errorMsg; return false;}				break;				case 'numbers':					var reg = new RegExp('^[0-9]{' + rule[i].checkRule + '}$');					if (!reg.test(data[rule[i].name])) { this.error = rule[i].errorMsg; return false; }				break;			}		}		return true;	},	isNumber : function (checkVal){		checkVal = Number(checkVal);		if(checkVal == NaN){return false;}		return true;	}}
 |