封装正则、表单验证的内容

该博客介绍了如何封装和使用一系列的表单验证规则,包括手机号、价格、人数和课时的验证方法。提供了如`checkMobile`、`checkPrice`等静态方法,并封装了如`PriceMethod`、`accommodateMethod`等便捷验证规则,便于在表单中进行数据校验,确保输入数据的合法性。示例展示了如何在表单验证规则对象中应用这些封装的方法。
//关于表单验证规则的封装

class ProofRules {
  //验证手机规则
  static checkMobile = (rules, value, callback) => {
    const regPhoneNumber = /^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/
    if (regPhoneNumber.test(value)) {
      return callback()
    } else {
      callback(new Error('请填写合法的手机号码'))
    }
  }

  //验证价格的正则
  static checkPrice = (rules, value, callback) => {
    const regPrice = /(^[1-9]\d*.\d{1,2}$)|(^0.\d{1,2}$)|(^[1-9]\d*$)/
    if (regPrice.test(value)) {
      return callback()
    } else {
      callback(new Error('请正确填写价格,要求最多为两位小数且不能为0'))
    }
  }

  //基础课程价格的完全封装
  static PriceMethod (title) {
    return [
      this.requiredField(title),
      {
        validator: this.checkPrice,
        trigger: 'blur'
      }
    ]
  }

  //验证人数的正则---->0且为整数
  static checkAccommodate = (rules, value, callback) => {
    const regAccommodate = /^[1-9]\d*$/
    if (regAccommodate.test(value)) {
      return callback()
    } else {
      callback(new Error('请正确填入人数,必须为正整数且不能为0'))
    }
  }

  //人数的完整封装
  static accommodateMethod (title) {
    return [
      this.requiredField(title),
      {
        validator: this.checkAccommodate,
        trigger: 'blur'
      }
    ]
  }

  //验证课时的正则
  static checkClassHours = (rules, value, callback) => {
    const regAccommodate = /^[1-9]\d*$/
    if (regAccommodate.test(value)) {
      return callback()
    } else {
      callback(new Error('请正确填入课时时长,必须为正整数且不能为0'))
    }
  }

  //对于时长验证的完全封装
  static classHoursMethod(title){
   return[
     this.requiredField(title),
     {
       validator: this.checkClassHours,
       trigger: 'blur'
     }
   ]
  }

  //封装必填项----返回的是个对象
  static requiredField (title) {
    return {
      required: true,
      message: '请输入' + title,
      trigger: 'blur'
    }
  }

  //封装必填项的长度
  static requiredLength (min, max) {
    return {
      min: min,
      max: max,
      message: '长度在' + min + '到' + max + '个字符',
      trigger: 'blur'
    }
  }

  //封装一个完整的,验证长度和必填项
  static requiredFieldAndLength (title, min, max) {
    return [
      this.requiredField(title),
      this.requiredLength(min, max)
    ]
  }

}

export default ProofRuless

使用

//引入封装的验证规则,包括价格、手机等的一些特殊验证
import ProofRules from '../../../ck/util/proofRules'

formRules: {
  ClassName: ProofRules.requiredFieldAndLength('基础课程名称', 2, 20),
  Describe: ProofRules.requiredFieldAndLength('基础课程描述', 2, 200),
  Price: ProofRules.PriceMethod('基础课程价格'),
  Accommodate: ProofRules.accommodateMethod('基础课程的容纳人数'),
  ClassHour: ProofRules.classHoursMethod('基础课程时长')
},
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值