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