1、正则校验批次

var checkBatch = (rule, value, callback) => {
      if (value != null) {
        const regBatch = /^[0-9a-zA-Z_-]*$/
        if (regBatch.test(value)) {
          return callback()
        }
        callback(new Error('请输入合法的批号!'))
      }
      callback()
}

注意:不管怎么样,都要执行一次callback()函数,否则校验不通过。

2、正则校验数量

var checkNum = (rule, value, callback) => {
      if (value != null) {
        const regNum = /^[+]{0,1}(\d+)$|^[+]{0,1}(\d+\.\d+)*$/
        if (!regNum.test(value)) {
          callback(new Error('请输入合法的数量!'))
        }
        callback()
      }
      callback()
}

注意:不管怎么样,都要执行一次callback()函数,否则校验不通过。

3、正则校验入库时间和生产时间

const checkImportDate = (rule, value, callback) => {
      if (value === null && value === '') {
        return callback(new Error("请输入入库时间"));
      }
      if (this.edit.expireDate != null && (new Date(this.edit.expireDate) <= new Date(value))) {
        callback(new Error("有效期截止时间不能小于或等于入库时间"));
      } else {
        callback();
      }
}
const checkProductionDate = (rule, value, callback) => {
if (value === null && value === '') {
return callback(new Error("请输入生产时间"));
}
if (this.edit.expireDate != null && (new Date(this.edit.expireDate) <= new Date(value))) {
callback(new Error("有效期截止时间不能小于或等于生产时间"));
} else {
callback();
}
}

注意:不管怎么样,都要执行一次callback()函数,否则校验不通过。

4、正则校验过期时间

const checkExpireDate = (rule, value, callback) => {
      if (!value) {
        return callback(new Error("请输入有效期截止时间"));
      }
      if (this.edit.importDate != null && this.edit.importDate != '') {
        if (new Date(this.edit.importDate) >= new Date(value)) {
          callback(new Error("入库时间不能大于或等于有效期截止时间"));
        } else {
          callback();
        }
      }
      if (this.edit.productionDate != null && this.edit.productionDate != '') {
        if (new Date(this.edit.productionDate) >= new Date(value)) {
          callback(new Error("生产时间不能大于或等于有效期截止时间"));
        } else {
          callback();
        }
      }
}

5、正则校验手机号

var checkMobile = (rule, value, callback) => {
      const regMobile = /^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/
      if (regMobile.test(value)) {
        return callback()
      }
      callback(new Error('请输入合法的手机号!'))
}

注意:不管怎么样,都要执行一次callback()函数,否则校验不通过。

6、正则校验年龄

var checkAge = (rule, value, callback) => {
      const regAge = /^(?:[1-9][0-9]?|1[01][0-9]|130)$/
      if (regAge.test(value)) {
        return callback()
      }
      callback(new Error('请输入合法的年龄!'))
}

7、正则校验体重(由于体重不是必须验证的,所以只有当输入之后才开始验证,没有输入内容则不验证)

var checkWeight = (rule, value, callback) => {
  if(value != null && value.length > 0){
const regWeight = /^\d{2}(\.\d){0,1}|\d{3}(\.\d){0,1}$/ if (regWeight.test(value)) { return callback() } callback(new Error('请输入合法的体重!'))
  }
 callback() }

 8、正则校验身高(由于身高不是必须验证的,所以只有当输入之后才开始验证,没有输入内容则不验证)

var checkHeight = (rule, value, callback) => {
  if(value != null && value.length > 0){
const regHeight = /^\d{3}$/ if (regHeight.test(value)) { return callback() } callback(new Error('请输入合法的身高!'))
  }
  callback() }

 9、正则校验URL

let validateURL = (rule, value, callback) => {
        if (!value) {
          return callback(new Error('必填'))
        }
        const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
        if (!urlregex.test(value)) {
          callback(new Error('url不合法'))
        } else {
          callback()
        }
      }

 10、校验是否已经存在

const entityNo = (rule, value, callback) => {
          if (value === '' || value == null) {
              callback(new Error('请输入社会信用代码'))
          } else if (!checkNumAndWord(value)) {
              callback(new Error('请输入正确的社会信用代码'))
          }
          if(this.entityNo1 != value){
          // if(this.dialogStatus === "create" || (this.entityNo1 && this.entityNo1 != value)){
              enterprise.checkEntityNo({entityNo:value}).then(res => {
                  if(res.success){
                      if (res.data) {
                          callback(new Error("社会信用码已存在"))
                      } else {
                          callback();
                      }
                  }
              })
           }else{
              callback();
          }

      }

注意:不管怎么样,都要执行一次callback()函数,否则校验不通过。

不能写成如下的样子:

const entityNo = (rule, value, callback) => {
          if (value === '' || value == null) {
              callback(new Error('请输入社会信用代码'))
          } else if (!checkNumAndWord(value)) {
              callback(new Error('请输入正确的社会信用代码'))
          }
          if(this.entityNo1 != value){
          // if(this.dialogStatus === "create" || (this.entityNo1 && this.entityNo1 != value)){
              enterprise.checkEntityNo({entityNo:value}).then(res => {
                  if(res.success){
                      if (res.data) {
                          callback(new Error("社会信用码已存在"))
                      } else {
                          callback();
                      }
                  }
              })
           }

      }

11、校验邮箱

邮箱的校验比较容器,只需要将type的值设置为email即可。

email: [
          { required: false, message: '请输入邮箱', trigger: 'blur' },
          { type: 'email', message: '请输入正确的邮箱地址', trigger: 'blur' },
          { max: 50, message: '长度不能超过50', trigger: 'blur' }
        ],

12、校验身份证号

const validatorIdCard = idCard => {
    if (!/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/.test(idCard) && !/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/.test(idCard)) {
        return false
    }
    return true
}

 

posted on 2020-09-23 19:28  周文豪  阅读(843)  评论(0编辑  收藏  举报