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