验证身份证是否合法

<el-col :span="12">
  <el-form-item  class="is-required" label="身份证号码" prop="idCode" :rules="{required: true,validator: checkIdCode,trigger: 'blur'}">
    <el-input v-model="idCode" placeholder="请输入" maxlength="18"  clearable></el-input>
  </el-form-item>

</el-col>
/**
 * @deprecated 身份证号码校验
 */
export function checkIdCodeBool(idcode) {
  let weight_factor = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
  let check_code = ['1', '0', 'X' , '9', '8', '7', '6', '5', '4', '3', '2'];
  let code = idcode + "";
  let last = idcode[17];
  let seventeen = code.substring(0,17);
  let arr = seventeen.split("");
  let len = arr.length;
  let num = 0;
  for(var i = 0; i < len; i++){
    num = num + arr[i] * weight_factor[i];
  }
  let resisue = num%11;
  let last_no = check_code[resisue];
  let idcard_patter = /^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X])$/;
  let format = idcard_patter.test(idcode);
  return last === last_no && format ? true : false;
}
/**
 * @deprecated 身份证号码校验
 * @method checkIdCode
 * @param {string} value 身份证号码
 */
checkIdCode(rule,value,callback){
  if (!value) {
    return callback(new Error('请输入身份证号码'));
  }else if(!checkIdCodeBool(value)){
    return callback(new Error('请输入正确的身份证号码'));
  }else{
    this.showBirthdayAndSexByIdCode(value);
    callback();
  }
  callback();
},
/**
 * @deprecated 根据身份证自动回显生日与性别
 * @method showBirthdayAndSexByIdCode
 * @param {string} idCode 身份证号码
 */
showBirthdayAndSexByIdCode(idCode){
  this.birthday = idCode.substring(6, 10) + "-" + idCode.substring(10, 12) + "-" + idCode.substring(12, 14);
  this.sex = parseInt(idCode.substr(16, 1)) % 2 === 1?'男':'女';
},

本文来自博客园,作者:小基狠努力啊,转载请注明原文链接:https://www.cnblogs.com/ylh188/p/14986221.html

原文地址:https://www.cnblogs.com/ylh188/p/14986221.html