/** * validator(校验器)文件 110613 * * */ wd.commonValidator={}; var lsSfzh; /** * 非空校验器 */ wd.commonValidator.notNull = function(valueArr,//保存所有被校验的表单值的数组 params//校验器的其余参数 ){ var rs = ''; var msgPrefix = params['msgPrfx'];//消息头 var minValue = params['minLen'];//最断数值 var maxValue = params['maxLen'];//最长数值 var length = params['len'];//长度 var trim =typeof params['trim']=="undefined"?true:params['trim'];//前后空格,true则不能保留空格,trim默认值为true var allNull =typeof params['allNull']=="undefined"?false:params['allNull'];//允许全部为空 2022-01-10 /// 增加 noZero="true",值为 0 时,也作为空 -- 默认值为 true。Lin // 解决不允许为空的 码(int)、ID(long) 有默认值 0 的问题 var noZero = (typeof params['noZero']=="undefined")? true : params['noZero']; /// if(!wd.commonValidator.condition.call(this,valueArr,params))return rs; // trim=(trim==null||trim==undefined)?true:trim;// var regTrim = /(^\s+)|(\s+$)/; var isNullCount = 0; var isBlankBefore = false;//曾经有空格 var nullArr=[]; for(var i=0;i maxValue){ rs += msgPrefix+'应不超过'+maxValue+'个字符\r\n'; } if(maxValue!=null&&value.length> maxValue){ rs += msgPrefix+'应不超过'+maxValue+'个字符\r\n'; } }*/ if(trim){ if(value&& regTrim.test(value)&&isBlankBefore==false){ rs += msgPrefix+'前后不能包含空格!\r\n'; isBlankBefore=true; } } } // isNullCount==valueArr.length if(nullArr.length>0){ //一个值 if(valueArr.length==1){ rs += msgPrefix+'不能为空!\r\n'; }else{ //多值 var pp=msgPrefix.split(/,/); if(valueArr.length==nullArr.length){ if(!allNull){ rs += pp.join(",")+'不能全为空!\r\n'; } }else{ for(var i=0;imaxValue){ // rs += msgPrefix+'应不大于'+maxValue+'\r\n'; // } if(minValue!=null && (parseInt(value) < parseInt(minValue)&&minValue!="-")){ rs += msgPrefix+'应不小于'+minValue+'\r\n'; } if(maxValue!=null&&(parseInt(value) > parseInt(maxValue)&&maxValue!="+")){ rs += msgPrefix+'应不大于'+maxValue+'\r\n'; } // if(decimalLength!=null&&!reg.test(value)){ var arr=value.toString().split("."); if(arr.length>1&&arr[1].length>parseInt(decimalLength)){ rs += msgPrefix+'小数部分应不多于'+decimalLength+'位。\r\n'; } } } return rs; } /** * 整数校验器 */ wd.commonValidator.int = function(valueArr,//保存所有被校验的表单值的数组 params//校验器的其余参数 ){ var rs = ''; var value = valueArr[0]; var msgPrefix = params['msgPrfx'];//消息头 var minValue = params['minVal'];//最小数值 var maxValue = params['maxVal'];//最大数值 var regValue = new RegExp('^[1-9]*[1-9][0-9]*$'); var notNull = params['notBlank']==null?false:params['notBlank']; if(notNull){ rs += wd.commonValidator.notNull(valueArr,params); }else{ rs += wd.commonValidator.validator(valueArr,params); } //minValue值不指定默认为0 if(!minValue){ minValue="0"; } if(value!=null&&value!=''){ // if(value != 0 && !regValue.test(value)){ // rs += msgPrefix+'应为正整数!\r\n'; // } if(isNaN(value)){ rs += msgPrefix+'应为整数!\r\n'; } if(minValue!=null && (parseInt(value) < parseInt(minValue)&&minValue!="-")){ rs += msgPrefix+'应不小于'+minValue+'\r\n'; } if(maxValue!=null&&(parseInt(value) > parseInt(maxValue)&&maxValue!="+")){ rs += msgPrefix+'应不大于'+maxValue+'\r\n'; } } return rs; } /** * 2022-3-1 新加的整数校验器,isInt不知谁改成了数字校验器!! */ wd.commonValidator.isInteger = function(valueArr,//保存所有被校验的表单值的数组 params//校验器的其余参数 ){ var rs = ''; var value = valueArr[0]; var msgPrefix = params['msgPrfx'];//消息头 var minValue = params['minVal'];//最小数值 var maxValue = params['maxVal'];//最大数值 var regValue = new RegExp('^[1-9]*[1-9][0-9]*$'); var notNull = params['notBlank']==null?false:params['notBlank']; if(notNull){ rs += wd.commonValidator.notNull(valueArr,params); } rs += wd.commonValidator.validator(valueArr,params); if(value!=null&&value!=''){ if(value != 0 && !regValue.test(value)){ rs += msgPrefix+'应为正整数!\r\n'; } if(!rs&&minValue&& value maxValue){ rs += msgPrefix+'应不大于'+maxValue+'\r\n'; } } return rs; } /** * 金额数校验器 */ wd.commonValidator.money = function(valueArr,//保存所有被校验的表单值的数组 params//校验器的其余参数 ){ var rs = ''; var value = valueArr[0]; var msgPrefix = params['msgPrfx'];//消息头 var reg = new RegExp('^\\d+(\\.\\d{0,2})?$'); var regValue = new RegExp('^\\d+(\\.\\d+)?$'); rs += wd.commonValidator.float(valueArr,params); if(regValue.test(value)&&value!=null&&value!=''&&!reg.test(value)){ rs += msgPrefix+'小数部分应在两位以内。\r\n'; } return rs; } /** * 公共校验器 */ wd.commonValidator.validator = function(valueArr,//保存所有被校验的表单值的数组 params//校验器的其余参数 ){ var rs = ''; var value = valueArr[0]; var msgPrefix = params['msgPrfx'];//消息头 var noBlank = params['notBlank']==null?false:params['notBlank']; var minLength = params['minLen']; var maxLength = params['maxLen']; var length = params['len']; var regNoBlank = /\s/g; var regMin = new RegExp("^.{"+minLength+",}$"); var regMax = new RegExp("^.{0,"+maxLength+"}$"); var regScope = new RegExp("^.{"+minLength+","+maxLength+"}$"); var regLength = new RegExp("^.{"+length+"}$"); if(value!=null&&value!=''){ if(noBlank&®NoBlank.test(value)){ rs += msgPrefix+'不能含空格!\r\n'; } if(minLength!=null&&!(value.length>=minLength)){ rs += msgPrefix+'应至少'+minLength+'个字符!\r\n'; }else if(maxLength!=null&&minLength!=null&&(value.length>=minLength&&value.length<=maxLength)){ //rs += msgPrefix+'必需在'+minLength+' ~'+maxLength+'!\r\n'; }else if(maxLength!=null&&!(value.length<=maxLength)){ rs += msgPrefix+'长度应不超过'+maxLength+'\r\n'; } if(length!=null&&!(value.length==length)){ rs += msgPrefix+'必需等于'+length+'!\r\n'; } } return rs; } /** * 内容管理技术规范的编码规则:[a-zA-Z_0-9] 和减号 校验器 */ wd.commonValidator.contentCodeRule = function(valueArr,//保存所有被校验的表单值的数组 params//校验器的其余参数 ){ var rs = ''; var value = valueArr[0]; var msgPrefix = params['msgPrfx'];//消息头 var regValue = new RegExp('^[\w-]+$'); var notNull = params['notBlank']==null?false:params['notBlank']; if(notNull){ rs += wd.commonValidator.notNull(valueArr,params); }else{ rs += wd.commonValidator.validator(valueArr,params); } if(value!=null&&value!=''){ if(value != 0 && !regValue.test(value)){ rs += msgPrefix+'必需由字母、数字、减号、下划线组成!\r\n'; } } return rs; } /** * 页码,只允许字母和数字 */ wd.commonValidator.pageNum = function(valueArr,//保存所有被校验的表单值的数组 params//校验器的其余参数 ){ var rs = ''; var value = valueArr[0]; var msgPrefix = params['msgPrfx'];//消息头 var regValue = new RegExp('^[\\da-zA-Z]+$'); var notNull = params['notBlank']==null?false:params['notBlank']; if(notNull){ rs += wd.commonValidator.notNull(valueArr,params); }else{ rs += wd.commonValidator.validator(valueArr,params); } if(value!=null&&value!=''){ if(value != 0 && !regValue.test(value)){ rs += msgPrefix+'必需由字母、数字组成!\r\n'; } } return rs; } /** * 英文名 * 由数字、字母和下划线组成,长度为2-30个字符 */ wd.commonValidator.enName = function(valueArr, params){ var rs = ''; var value = valueArr[0]; var msgPrefix = params['msgPrfx']; var regValue = new RegExp('^\\w{2,30}$'); var notNull = params['notBlank'] == null ? false : params['notBlank']; if(notNull){ rs += wd.commonValidator.notNull(valueArr, params); } if(value != null && value != ''){ if(!regValue.test(value)){ rs += msgPrefix + '只能由数字、字母和下划线组成,长度为2-30个字符!\r\n'; } // var ryid =$('#ryid').val()||$('input[name=ryid]').val(); var ryid=this.getElementValue("ryid"); var cb = $.ajax({type: "post", url: "/service?&ssServ=ry_yzywm", data:{'userywm':valueArr.toString(), 'ryid': ryid}, cache:false, async:false, dataType: "json" }); if(cb.status==404){ rs+="服务器连接失败!刷新页面"; }else{ var queryData = cb.responseJSON; if(queryData.isFind != "false"){ rs+="英文名已存在!"; } } } return rs; } wd.commonValidator.csenName = function(valueArr, params){ var rs = ''; var value = valueArr[0]; var msgPrefix = params['msgPrfx']; var regValue = new RegExp('^\\w{2,30}$'); var notNull = params['notBlank'] == null ? false : params['notBlank']; if(notNull){ rs += wd.commonValidator.notNull(valueArr, params); } if(value != null && value != ''){ if(!regValue.test(value)){ rs += msgPrefix + '只能由数字、字母和下划线组成,长度为2-30个字符!\r\n'; } // var ryid =$('#ryid').val()||$('input[name=ryid]').val(); var ryid=this.getElementValue("ryid"); var cb = $.ajax({type: "post", url: "/service?&ssServ=csry_yzywm", data:{'userywm':valueArr.toString(), 'ryid': ryid}, cache:false, async:false, dataType: "json" }); if(cb.status==404){ rs+="服务器连接失败!刷新页面"; }else{ var queryData = cb.responseJSON; if(queryData.isFind != "false"){ rs+="英文名已存在!"; } } } return rs; } /** * 域名唯一 * */ wd.commonValidator.ymwy = function(valueArr, params){ var rs = ''; var value = valueArr[0]; var msgPrefix = params['msgPrfx'];//消息头 var regValue = new RegExp('^[\w-]+$'); var notNull = params['notBlank']==null?false:params['notBlank']; if(notNull){ rs += wd.commonValidator.notNull(valueArr, params); } if(value!=null&&value!=''){ // var wangzid = ($('input[name="wangzid"]') != undefined ? $('input[name="wangzid"]').val() : $('#wangzid').val()); var wangzid=this.getElementValue("wangzid"); var cb = $.ajax({ type:'post' , url:"/service?ssServ=grwzbj_wz_ym_wy", data:{ ym:value, wangzid:wangzid }, dataType:"json", async:false, }); if(cb.status==404){ rs+="服务器连接失败!刷新页面"; }else{ var queryData = cb.responseJSON; if(queryData.isFind != false){ rs+="域名已存在!"; } } } return rs; } /** * 附件是否为空校验 * @param {*} valueArr * @param {*} params * @returns */ wd.commonValidator.fjNotNull = function(valueArr,//保存所有被校验的表单值的数组 params//校验器的其余参数 ){ var rs = ''; var msgPrefix = params['msgPrfx'];//消息头 //var nrid = this.getElementValue("fjid"); var nrid=valueArr[0]; if (!nrid) { rs += msgPrefix+'不能为空!\r\n'; } else { $.ajax({ async: false, type: "post", url: "/service?ssServ=wrCcmsList", // =getSubNrCount",。Lin data: { nrid: "T-" + nrid, jlztm:1 }, dataType: "json", // 增加,统一 Ajax 返回标准 -- .ssCode、.ssMsg、.ssData。Lin success: function (data) { /* 改,增加错误处理 -- 统一 Ajax 返回标准 -- .ssCode、.ssMsg、.ssData。Lin * 去掉 JSON.parse(,改为用 Map 传输 var names = JSON.parse(data); */ if (data.ssCode != 0) { alert(data.ssMsg); return; } var names = data.ssData; var isArray = $.isArray(names); if (!isArray || names.length <= 0) { rs += msgPrefix+'不能为空!\r\n'; } }, error: function (data) { console.log(data); } }) } rs += wd.commonValidator.validator(valueArr,params); return rs; } /** * 大于 * @param {Object} valueArr * @param {Object} params */ wd.commonValidator.greater = function(valueArr, params){ var rs = ''; var msgPrefix = params['msgPrfx'];//消息头 var pp=msgPrefix.split(/,/); msgPrefix=pp[0]+"大于"+pp[1]+"! \r\n"; if(valueArr.length<2){ return rs; } var leftValue=valueArr[0]; var rightValue=valueArr[1]; if(!leftValue||!rightValue){ return rs; } var eq =typeof params['equal']=="undefined"?false:params['equal'];//包括大小相等 if(!!parseFloat(leftValue)&&!!parseFloat(rightValue) ){ if(eq){ if(parseFloat(leftValue)=2&&!!parseFloat(valueArr[0])&&!!parseFloat(valueArr[1]) ){ if(eq){ if(parseFloat(valueArr[0])>parseFloat(valueArr[1])){ // console.log(arguments); rs += msgPrefix; } }else{ if(parseFloat(valueArr[0])>=parseFloat(valueArr[1])){ // console.log(arguments); rs += msgPrefix; } } } return rs; } /** * 不等于 * @param {Object} valueArr * @param {Object} params */ wd.commonValidator.notEqual = function(valueArr, params){ var rs = ''; var msgPrefix = params['msgPrfx'];//消息头 var pp=msgPrefix.split(/,/); console.log(valueArr); for(var i=0;i wd.commonValidator.chkNotMatch = function(valueArr, params){ var rs = ''; //表名 var table = params['srcTab']; // "ry"(人员)。Lin //字段名 var field = params['srcField']; // "xm,grdh"(姓名,个人电话)。Lin //数值 /* 增加 parm="{relField:'jfrxm,jfrgrdh', -- 相关的页面字段。Lin * 去掉原来的 // 加载时生成 parm="{relField:'zh,ywm,ryh' wd.commonValidator.chkAlo = function(valueArr, params){ var rs = ''; /// 抄自 wd.commonValidator.notNull(。Lin var regTrim = /(^\s+)|(\s+$)/; var value = valueArr[0]; if (value && regTrim.test(value)) rs += '前后不能包含空格!
'; /// var relField = params['relField']; // "zh,ywm,ryh"(账号、英文名、人员号)。Lin if (relField == null || relField == "") return rs; var pass = false; var fieldArr = relField.split(","); for (var i = 0; i < fieldArr.length; i++) { var v = this.getElementValue(fieldArr[i]); if (v) { v = v.trim(); if (v) { pass = true; break; } } } if (!pass) rs += params['msgPrfx'] +" 不能全为空" return rs; }