心云小站

心云小站
一个萌新的学习之路
  1. 首页
  2. 学习笔记
  3. 正文

前端使用正则校验身份证号码

2022年4月1日 430点热度 2人点赞 0条评论

正则校验身份证:

const reg = new RegExp('^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$|^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$');
return !reg.test(value)

 

校验身份证是否合规(GB 11643-1999)

export function VerifyCode(code: string) {
//加权因子
const factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
// 校验位
const 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 = Number(code[i]);
wi = factor[i];
sum += ai * wi;
}
return parity[sum % 11] === Number(code[17]);
}

校验身份证地区码是否正确:

export function VerifyIDCardCityCode(code: string) {
  const 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: '国外 ',
  };
  return city[code.slice(0, 2)];
}

 

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2023年10月20日

xinyun

醉后不知天在水,满船清梦压山河

点赞
< 上一篇

COPYRIGHT © 2022 bokro.cn. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

渝ICP备19015053号-1

渝公网安备50010502001974号