//省份对应的代号      ```
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: '国外'
};
const regCity = `(${Reflect.ownKeys(city).join('|')})`;
//当前日期
const currentDate = new Date();
const year = String(currentDate.getFullYear()).split('');
const month = String(currentDate.getMonth() + 1).split('');
const day = String(currentDate.getDate()).split('');
//处理小于10的月份和天数
if (month.length < 2) {month.unshift('0');
}
if (day.length < 2) {day.unshift('0');
}
//校验时间月、日
const regDay = `(((0[13578]|1[02])([0-2]\d|3[0-1]))|(02[0-2]\d)|((0[469]|11)([0-2]\d|30)))`;
//校验十五位身份证号
const reg15 = `(^${regCity}\\d{4}\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{2}$)`;
//当前月校验
const currentYearMonth = `${month[0]}${month[1]}${day[0]==0? `0[1-${day[1]}]`:`([0-${day[0]-1}][1-9])|(${day[0]}[0-${day[1]}])`}`;
/***当前年其他月份校验*/
//当前月小于十月份校验
const min10Month = `0[1-${month[1] - 1}](0[1-9]|[1-2]\d|3[0-1])`;
//当前月大于等于十月份校验
const max10Month = `(0[1-9](0[1-9]|[1-2]\d|3[0-1]))${month[1]==0? '':`|(1[0-${month[1] - 1}](0[1-9]|[1-2]\d|3[0-1]))`}`;
const currentYearOtherMonth = month[0] == 0? min10Month:max10Month;
/***组装身份证号校验规则*/
//当前年
const currentYear = `${year[0]}${year[1]}${year[2]}${year[3]}`;
//当前年份校验,当前月份是一月份只使用 currentYearMonth 校验月份
const currentYearReg = `(${currentYear}${ month[0] == 0 && month[1] == 1? '(':`(${currentYearOtherMonth}|`}${currentYearMonth}))`;
//其他年份校验
const regMillenniumMinBirthday = `${year[0]}[0-${year[1]}](([0-${year[2] - 1<0? 0:year[2] - 1}]\d)|(${year[2]}[0-${year[3] - 1 < 0? 0:year[3] - 1}]))`;
const otherYearReg = `((([0-${year[0] - 1}]\d{3})|(${regMillenniumMinBirthday}))${regDay})`;
const regBirthday18 = `(${otherYearReg}|${currentYearReg})`;
const reg18 = `(^${regCity}\d{4}${regBirthday18}\d{3}[0-9Xx]$)`;
const reg = new RegExp(`${reg15}|${reg18}`);

前端校验身份证号正则,校验规则省份、年月日,包含15位校验(完整)相关推荐

  1. 表单校验之---校验姓名/护照正则/台湾往来通行证/校验身份证号/港澳往来通行证正则/军官证正则/检验手机号/校验银行卡号

    常用表单校验 1.校验姓名       2.护照正则      3.台湾往来通行证          4.校验身份证号         5.港澳往来通行证正则 6.军官证正则     7.检验手机号  ...

  2. Java校验身份证号工具类

    直接上代码,该util可以校验身份证号,可以获取年龄.性别.出生日期. public class PersonIdCardUtil {/*** 省.直辖市代码表:* 11 : 北京 12 : 天津 1 ...

  3. Java身份证号脱敏、校验身份证号合法性、根据身份证号获取年龄、根据生日获取年龄

    这里写目录 身份证号编码规则 身份证号脱敏 身份证号合法性校验 根据身份证号获取年龄 根据生日日期获取年龄 根据身份证号获取年龄.生日的Map集合 身份证号编码规则 第一.二位表示省(自治区.直辖市. ...

  4. vue组件中校验身份证号,手机号和邮箱

    vue组件中校验身份证号,手机号和邮箱 直接上代码 一.在js文件中添加校验方式和方法 1. 身份证号码校验(说明,这个身份证校验的方式很精确,算法仔细推荐使用) export function id ...

  5. SQL 校验身份证号格式

    调用示例: SELECT  dbo.[fn_IDCardChk]('123')  /* --------------------------- 校验身份证号是否有效 成功返回1 失败返回0Jacker ...

  6. MySql 根据身份证号来判别所属省份年龄及性别

    一.背景: 新项目要从别的系统迁移用户表信息,老的用户表里的数据有很多不规范的数据,需要通过表里的身份证号获取用户的省份.年龄.性别. 二.获取方式: 1.通过身份证号获取省份. SELECT CAS ...

  7. .net验证身份证号是否符合规则

    验证身份证号是否符合规则,比较实用,错判率我自己测试为0,挺好用的,欢迎大神补充. protected bool checkidcard(string idcard){//验证18位或者17位加大小写 ...

  8. 使用JS校验身份证号

    1. 中国居民身份证号码编码规则 第一.二位表示省(自治区.直辖市.特别行政区),对于地区代码. 第三.四位表示市(地级市.自治州.盟及国家直辖市所属市辖区和县的汇总码).其中,01-20,51-70 ...

  9. 正则表达式校验身份证号带出出生日期,年龄,性别

    身份证号码说明 居民身份证号码,正确.正式的称谓应该是"公民身份号码".根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码 ...

最新文章

  1. AliCloudDB for redis应用场景之存储最新N条聊天记录
  2. 神秘AI换脸软件入侵全球社交网络!马斯克秒变文艺复兴贵族
  3. h5实现手机端等级进度条
  4. 二分查找--AVL查找树
  5. css 背景图怎么设置自动填充满_CSS属性设置 -- 背景样式
  6. JAVA编程相关:eclipse如何导入已有工程
  7. Mysql 创建表、存储过程、触发器 -Angelo 分享
  8. MTK 驱动开发(39)--低功耗分析工具
  9. linux逻辑表达式,循环结构,函数
  10. 小说题目和章节题目还没想好
  11. 单片机C51 之(1)简介
  12. vue 怎么解析xml
  13. 三星固态sm863,pm863,sm865,sm865a颗粒
  14. 毕业设计——deepfake假脸检测
  15. 中国知名科幻网站列表
  16. Hadoop 推测执行
  17. IT经理的个人宣言:做一个好男人!
  18. android 8.0 ps 命令,全网最全adb命令 - osc_8exjk9uk的个人空间 - OSCHINA - 中文开源技术交流社区...
  19. ISO26262对软件开发的规定
  20. cf体验服老显示与服务器出现异常,穿越火线体验服出现网络异常

热门文章

  1. 第五届趣味编程大赛——F 苗童大作战之爱洗澡的鳄鱼
  2. HTML表格中字体居中
  3. 东软集团、红星美凯龙、TCL、中国移动都在用的自动化测试工具
  4. 互联网广告之功能讲解
  5. Java虚拟机(JVM)学习笔记(不定时更新)
  6. 国内vs国外:外贸建站该如何选择?
  7. 我崩溃了!大连java培训机构哪家好
  8. middles在python中什么意思_Python 基础知识入门(2)
  9. 数据结构与算法之美--1.时间复杂度分析
  10. 微信公众号文章、菜单如何实现一键拨号?