针对表单有许多的验证要做,这个简单诠释了验证的写法

1、vue 页面代码

    <a-spin :spinning="confirmLoading">
      <a-form :form="form">
        <a-form-item
          label="bizCode"
          :labelCol="labelCol"
          :wrapperCol="wrapperCol"
          has-feedback="">
          <a-input placeholder="请输入bizCode"
                   v-decorator="['bizCode', {rules: [
                     {required: true, message: '请输入bizCode!'},
                     { min: 3, max: 4, message: 'bizCode需在2-4位之间', trigger: 'blur' },
                     {required: true, message: '请填写邮箱!'},
                     {validator:EmailValidator}
                     ]}]"/>
        </a-form-item>

2、vue 验证规则代码

methods: {
      EmailValidator(rule, value, callback){
        const idcardReg = /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/
        if (!idcardReg.test(value)) {
          // eslint-disable-next-line standard/no-callback-literal
          callback('邮箱格式不正确')
        }
        // Note: 必须总是返回一个 callback,否则 validateFieldsAndScroll 无法响应
        callback()
      }
}

3、其他的一些验证规则

    // 手机号验证
    MobileNumberValidator (rule, value, callback) {
      const idcardReg = /^1(3|4|5|6|7|8|9)\d{9}$/
      if (!idcardReg.test(value)) {
        // eslint-disable-next-line standard/no-callback-literal
        callback('非法格式')
      }
      // Note: 必须总是返回一个 callback,否则 validateFieldsAndScroll 无法响应
      callback()
    },
    // 邮箱验证
    EmailValidator (rule, value, callback) {
      const idcardReg = /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/
      if (!idcardReg.test(value)) {
        // eslint-disable-next-line standard/no-callback-literal
        callback('非法格式')
      }
     // Note: 必须总是返回一个 callback,否则 validateFieldsAndScroll 无法响应
      callback()
    },
    // 身份证验证 
    IDValidator (rule, value, callback) {
      const idcardReg = /^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|31)|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}([0-9]|x|X)$/
      if (!idcardReg.test(value)) {
      // eslint-disable-next-line standard/no-callback-literal
        callback('非法格式')
      }
      // Note: 必须总是返回一个 callback,否则 validateFieldsAndScroll 无法响应
      callback()
    }
Logo

前往低代码交流专区

更多推荐