elementui 输入框添加身份证严格校验 正则

Posted 七年觐汐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elementui 输入框添加身份证严格校验 正则相关的知识,希望对你有一定的参考价值。

最近业务升级,之前的身份证校验正则只能保证身份证位数满足条件,但是格式不进行校验.
写一个可以校验格式的身份证校验

// 校验函数
function IdentityCodeValid(rule, value, callback) {
  let city = {
    11: \'北京\',
    12: \'天津\',
    13: \'河北\',
    14: \'山西\',
    15: \'内蒙古\',
    21: \'辽宁\',
    22: \'吉林\',
    23: \'黑龙江\',
    31: \'上海\',
    32: \'江苏\',
    33: \'浙江\',
    34: \'安徽\',
    35: \'福建\',
    36: \'江西\',
    37: \'山东\',
    41: \'河南\',
    42: \'湖北\',
    43: \'湖南\',
    44: \'广东\',
    45: \'广西\',
    46: \'海南\',
    50: \'重庆\',
    51: \'四川\',
    52: \'贵州\',
    53: \'云南\',
    54: \'西藏\',
    61: \'陕西\',
    62: \'甘肃\',
    63: \'青海\',
    64: \'宁夏\',
    65: \'新疆\',
    71: \'台湾\',
    81: \'香港\',
    82: \'澳门\',
    91: \'国外\',
  };
  if(!value){
    return true, callback();
  }
  if (
    !value ||
    !/^\\d{6}(18|19|20)?\\d{2}(0[1-9]|1[012])(0[1-9]|[12]\\d|3[01])\\d{3}(\\d|X)$/i.test(
      value
    )
  ) {
    callback(new Error(\'身份证号格式错误\'));
  } else if (!city[value.substr(0, 2)]) {
    callback(new Error(\'地址编码错误\'));
  } else {
    if (value.length == 18) {
      value = value.split(\'\');
      let factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
      let parity = [1, 0, \'X\', 9, 8, 7, 6, 5, 4, 3, 2];
      let sum = 0;
      let ai = 0;
      let wi = 0;
      for (let i = 0; i < 17; i++) {
        ai = value[i];
        wi = factor[i];
        sum += ai * wi;
      }
      if (parity[sum % 11] != value[17]) {
        callback(new Error(\'校验位错误\'));
      } else {
        return true, callback();
      }
    }
  }
}

el-form加rules属性

<el-form :rules="rules" >

el-form-item 加prop

<el-form-item label="身份证号" prop="legalIdNumber">
  <el-input v-model="Defendantenterprise.IdNumber" :disabled="disable"></el-input>
</el-form-item>

data中rules属性

rules:{
  idNumber: [
    {
      validator: IdentityCodeValid,
      trigger: \'blur\',
    },
  ],
}

以上是关于elementui 输入框添加身份证严格校验 正则的主要内容,如果未能解决你的问题,请参考以下文章

elementui表单输入框部分校验--判断

使用ElementUI的@input,@change,@blur,@focus进行校验文本框的长度,提示还可以输入多少字

通过elementUI实现动态插入多个输入框

Xlua学习笔记:输入框正则校验

Xlua学习笔记:输入框正则校验

Xlua学习笔记:输入框正则校验