首页 > 其他 > 详细

使用正则异步做(element)表单验证

时间:2020-05-09 17:34:08      阅读:39      评论:0      收藏:0      [点我收藏+]
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
      }
    },

 代码简单明了,校验的规则是常见的数据类型的,记录一下方便以后查阅

使用正则异步做(element)表单验证

原文:https://www.cnblogs.com/hanjz/p/12858742.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!