vue+iview项目正则校验的使用

本文介绍如何在iview中使用ruleValidate方法进行前端表单验证,包括员工编号、车牌号、手机号的校验规则,以及针对不同类型的车牌号码(燃油车和新能源车)的定制验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在前端项目开发中经常会用到正则的校验,iview中有ruleValidate方法的使用

 在data中定义

ruleValidate: {
        staff_no: [
          { required: true, message: '员工编号不能为空', trigger: 'blur' }
        ],
        car_number: [
          { required: true, message: '车牌号不能为空', trigger: 'blur' },
          { validator: validateCarNumber, trigger: 'blur' }
        ],
        car_license: [
          { required: true, message: '车证编号不能为空', trigger: 'blur' }
        ],
        car_owner: [
          { required: true, message: '车主姓名不能为空', trigger: 'blur' }
        ],
        parking_spaceid: [
          { required: true, message: '车位编号不能为空', trigger: 'blur' }
        ],
        phone_number: [
          { required: true, message: '手机号不能为空', trigger: 'blur' },
          { validator: validatePhone, trigger: 'blur' }
        ]
      }

在方法中使用

confirm (name) {
      this.$refs[name].validate((valid) => {
        if (valid) {
          parkingCarManagementUpdate(this.formValidate).then(data => {
            this.isShow = false
            this.$emit('getListFunc')
            this.$Message.success('更改成功!')
            this.$refs[name].resetFields()
          }).catch(e => {
          })
        } else {
          this.$Message.error('Fail!')
        }
      })

这样的话就实现了校验,有时候需要实现手机号校验

const validatePhone = (rule, value, callback) => {
      let phone = value.replace(/\s/g, '')
      // let regs = /^((13[0-9])|(17[0-1,6-8])|(15[^4,\\D])|(18[0-9]))\d{8}$/
      let regs = /^(1)\d{10}$/
      if (value.length !== 0) {
        if (!regs.test(phone)) {
          callback(new Error('手机号输入不合法'))
        } else {
          callback()
        }
      }
    }

方法写在data里

 

车牌号校验,分为燃油车和新能源车

const validateCarNumber = (rule, value, callback) => {
      let xreg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/
      let creg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/
      let number = value.replace(/\s/g, '')
      if (value.length !== 0) {
        if (value.length === 7) {
          if (!creg.test(number)) {
            callback(new Error('车牌号输入不合法'))
          } else {
            callback()
          }
        } else if (value.length === 8) {
          if (!xreg.test(number)) {
            callback(new Error('车牌号输入不合法'))
          } else {
            callback()
          }
        } else {
          callback(new Error('车牌号输入不合法'))
        }
      }
    }

 

单选radio表单校验必填的方法是通过设置规则来实现。在引用\[1\]中的示例代码中,可以看到通过设置`:rules`属性来指定校验规则。在这个例子中,如果选择的值为"0",则输入框为非必填项,如果选择的值为"1",则输入框为必填项。具体的实现是通过在`ruleValidate`对象中定义校验规则,其中`is_need_meeting`对应的规则为`\[{ required: true, message: '此项为必填项', trigger: 'change' }\]`,表示选择"1"时为必填项。而在`<FormItem>`组件中,通过判断`applicationForm.is_need_meeting==='0'`来决定是否应用该规则。如果选择的值为"0",则应用`ruleValidate.meeting_room`规则,否则不应用规则。这样就实现了单选radio表单校验必填的功能。\[1\] \[3\] #### 引用[.reference_title] - *1* *3* [vue+iview单选按钮正则ruleValidate校验必填和非必填](https://blog.youkuaiyun.com/Zxiuping/article/details/130448444)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [ant组件radio换切导致表单校验失效](https://blog.youkuaiyun.com/weixin_51972964/article/details/119382200)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值