开发常用 -- 校验表单 -- 身份证号码的校验-正则

要求:必填,符合身份证号码规则

html:

      <el-form
        :model="formValidate"
        :rules="rules"
        ref="formValidate"
        label-width="120px"
        style="width: 90%"
      >
        <el-form-item label="账号:" prop="cid">
          <el-input v-model.trim="formValidate.cid" placeholder="请输入证件号码" />
        </el-form-item>
      </el-form>

js: 

引入 validate.js

import validate from "@/utils/validate";

 validate.js文件内容:

/**
 * 检查证件号码是否正确
 */
function checkCid(cid, ctype, who = ''){
  cid = removeSpaceFun(cid);
  if(!cid) {
    return {data: false, msg: '请填写证件号码'};
  }
  ctype = +ctype
  if (/.*[\u4e00-\u9fa5]+.*$/.test(cid)) {
    return {data: false, msg: who + '证件号码不允许使用汉字'};
  }
  // 全角字符判断
  if (/[^\x00-\xff]/.test(cid)) {
    return {data: false, msg: who + '证件号码不允许全角字符'};
  }
  // 特殊字符判断
  if (/[#\$%\^&\*【】‘;:”“'。,,、.?<>+=:]+/g.test(cid)) {
    return {data: false, msg: who + '证件号码不允许\'#$%^&*【】‘;:”“\'。,、.,?<>+=:\'等特殊字符'};
  }
  if (ctype === 10) {
    if (!checkIDCard(cid)) {
      return {data: false, msg: who + '证件号码不正确'};
    }
  }
  //港澳
  if (ctype === 14) {
    var pattern = /^[HMhm]{1}([0-9]{10}|[0-9]{8})$/;
    if (!pattern.test(cid)) {
      return {data: false, msg: who + '证件号码不正确'};
    }
  }
  //台湾
  if (ctype === 15) {
    var re1 = /^\d{8}$|^\d{10}[ABD]$|^\d{18}$/;
    if (!re1.test(cid)) {
      return {data: false, msg: who + '证件号码不正确'};
    }
  }
  //护照
  if (ctype === 20) {
    var re1 = /^[a-zA-Z]{5,17}$/;
    var re2 = /^[a-zA-Z0-9]{5,17}$/;
    if (!re1.test(cid) && !re2.test(cid)) {
      return {data: false, msg: who + '证件号码不正确'};
    }
  }
  return {data: true, msg: ''};
}

export default {
  checkCid
}

使用: 

  data() {
    return {
      formValidate: {
        cid: '',
      },
      rules: {
        cid: [
          {
            required: true,
            message: "请输入证件号码",
            trigger: "blur",
          },
          {
            validator: (rule, value, callback, source, options) => {
              let error = [];
              let checkRes = validate.checkCid(value, Number(this.formValidate.ctype))
              if (!checkRes.data) {
                error.push(checkRes.msg);
              }
              callback(error);
            },
            trigger: "blur",
          },
        ]
      },
    };
  },
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
el-form是Element UI框架中的表单组件,可以用于快速实现表单的输入、校验和提交功能。表单校验是el-form的一个重要特点,可以在表单提交前对用户输入的内容进行校验,确保输入的数据符合要求,有效避免了因用户错误输入而导致的数据错误。 el-form表单校验可以通过设置表单项的校验规则完成,校验规则可以通过对象、数组和函数三种方式进行设置。对象形式的校验规则可以通过设置如下属性完成: - required:是否必填 - min:最小长度或值 - max:最大长度或值 - type:数据类型 - pattern:正则表达式 数组形式的校验规则可以设置多个校验规则,每个校验规则可以包含一个对象形式的规则,也可以包含一个函数类型的规则。 函数形式的校验规则可以根据用户输入的值进行自定义校验,函数接受两个参数,分别为输入值和回调函数。在函数中用户可以使用if语句、正则表达式等方式对数据进行自定义校验,并通过回调函数返回校验结果。 当用户输入的数据不符合校验规则时,el-form会在表单项下方显示一个红色的提示框,提示用户输入不符合要求,并标识出哪些实际错误的规则。当用户输入正确时,提示框消失,允许用户提交表单。 总之,el-form表单校验是一种强大且灵活的输入数据校验机制,可以有效保证用户数据的准确性和合法性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值