rules: { cParamvalue: [ { validator: (rule, value, callback) => { if (value != ‘‘) { this.validateParamTypeTest(value, callback) } else { callback(new Error(‘不能为空!‘)) } }, }, ], }
validateParamTypeTest(value, callback) { let reg = null switch (this.form.cParamvaluetype) { case ‘INTEGER‘: reg = new RegExp(‘^[0-9]*$‘) if (!this.validateParamType(reg, value)) { callback(new Error(‘请输入整数‘)) } break case ‘DOUBLE‘: reg = new RegExp(‘^[1-9]*[0-9]?(\.[0-9]{1,5})?$‘) if (!this.validateParamType(reg, value)) { callback(new Error(‘请输入整数或浮点数,浮点数小数点后最多5位‘)) } break case ‘DATE‘: reg = new RegExp( ‘^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$‘, ) if (!this.validateParamType(reg, value)) { callback(new Error(‘请输入如1971-01-01这样的日期‘)) } break case ‘TIME‘: reg = new RegExp(‘([0-1][0-9]|(2[0-3])):([0-5][0-9]):([0-5][0-9])$‘) if (!this.validateParamType(reg, value)) { callback(new Error(‘请输入如00:00:00这样的时间‘)) } break case ‘DATETIME‘: reg = new RegExp( /^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s((([0-1][0-9])|(2?[0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$/, ) if (!this.validateParamType(reg, value) || value.length < 19) { callback(new Error(‘请输入例如1971-01-01 00:00:00这样的日期时间‘)) } break default: callback() //不能少,否则校验会不通过,无法提交 break } }, validateParamType(reg, str) { if (reg.test(str)) { return true } else { return false } },
代码简单明了,校验的规则是常见的数据类型的,记录一下方便以后查阅
原文:https://www.cnblogs.com/hanjz/p/12858742.html