vue+element实现银行卡号只输入数字,四个补一个空位,并实现校验

vue+element实现银行卡号只输入数字,四个补一个空位,并实现校验

  • html 输入框只输入数字
    • watch 监听实现四个数字补一个空位
      • 自定义卡号校验规则

在这里插入图片描述

html 输入框只输入数字

// type设置为text

     

watch 监听实现四个数字补一个空位

  ['form.bankNumber'](val) {
        if (val != undefined) {
          this.$nextTick(() => {
            this.form.bankNumber = val.replace(/\D/g, '').replace(/....(?!$)/g, '$& ');
          });
        }
      }

自定义卡号校验规则

data() {
      var bankAccountValid = (rule, value, callback) => {
        const strBin = '10,18,30,35,37,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,58,60,62,65,68,69,84,87,88,94,95,98,99'
        if (!value) {
          return
        } else if (value.trim().length < 12 || value.trim().length > 19) {
          callback(new Error('银行卡号长度必须在12到19之间'))
        } else if (strBin.indexOf(value.substring(0, 2)) === -1) {
          callback(new Error('银行卡号开头6位不符合规范'))
        } else {
          callback()
        }
      };
      return {
        // 表单校验
        rules: {
          bankNumber: [
            {
              required: false, trigger: 'blur', validator: bankAccountValid
            }
          ]
        },
      };
    },

你可能感兴趣的:(VUE专栏,JS,vue)