checkIdCardNumber(idcard) {let Errors = [// {code:0, status: true, msg: '验证通过!' },// {code:1, status: false, msg: '身份证号码位数不对!' },// {code:2, status: false, msg: '身份证号码出生日期超出范围或含有非法字符!' },// {code:3, status: false, msg: '身份证号码校验错误!' },// {code:4, status: false, msg: '身份证地区非法!' },true,false,false,false,false,];let area = {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: "国外",};let ereg;let idcard_array = idcard.split("");if (area[parseInt(idcard.substr(0, 2))] === null) return Errors[4];switch (idcard.length) {case 18:if (parseInt(idcard.substr(6, 4)) % 400 == 0 ||(parseInt(idcard.substr(6, 4)) % 100 != 0 &&parseInt(idcard.substr(6, 4)) % 4 == 0)) {ereg =/^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式} else {ereg =/^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式}if (ereg.test(idcard)) {let S =(parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7 +(parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9 +(parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10 +(parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5 +(parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8 +(parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4 +(parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2 +parseInt(idcard_array[7]) * 1 +parseInt(idcard_array[8]) * 6 +parseInt(idcard_array[9]) * 3;let Y = S % 11;let M = "F";let JYM = "10X98765432";M = JYM.substr(Y, 1);if (M == idcard_array[17]) return Errors[0];else return Errors[3];} else return Errors[2];default:return Errors[1];}
}

js中身份证校验规则相关推荐

  1. element-UI框架使用validate.js的form校验规则(+自定义验证代码)- 应用篇

    文章目录 element-UI除了官方给出的校验规则,还可以自定义(举例如下) 代码示例: 参考文章: element-UI除了官方给出的校验规则,还可以自定义(举例如下) element-UI框架f ...

  2. 公民身份证校验规则最新最全最严格(包含最后一位校验码校验)

    公民身份证校验规则最新最全最严格(包含最后一位校验码校验) 身份证号前两位为省级行政区划 11: "北京", 12: "天津" 13: "河北&quo ...

  3. Js中身份证验证及社会统一信用代码验证

    二代身份证验证规则如下: //函数参数必须是字符串,因为二代身份证号码是十八位,而在javascript中,十八位的数值会超出计算范围,造成不精确的结果,导致最后两位和计算的值不一致,从而该函数出现错 ...

  4. jQuery Validate 表单验证插件----在class属性中添加校验规则进行简单的校验

    一.下载插件包. 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二.jQuery表单验证插件----添加class属性形式的校验 <!DOCTY ...

  5. 最全的身份证校验规则

    function testid(id) {// 1 "验证通过!", 0 //校验不通过 // id为身份证号码var format = /^(([1][1-5])|([2][1- ...

  6. Oracle 关于身份证校验规则详细说明(附有代码复制可执行)

    身份证号码组成 15位身份证号组成: 省份(2位)市(2位)区[县](2位)年(2位)月(2位)日(2位)+3位序列号 [奇数给男性/偶数给女性] 18位身份证号组成: 省份(2位)市(2位)区[县] ...

  7. DRF框架—序列化器中的字段校验规则

    一.怎么校验创建的项目名是否是唯一的,当项目名name字段不唯一,怎么设置提示信息? 方法:导入UniqueValidator from rest_framework.validators impor ...

  8. vue 身份证校验、识别性别/生日/年龄

    vue 身份证格式校验_chen_ai_tao的博客-CSDN博客_vue 身份证校验 Vue中根据输入的身份证号识别年龄.性别_cx&lavender的博客-CSDN博客_vue中根据省份证 ...

  9. 皇甫懒懒 华清远见Java学习笔记-身份证校验

    # 身份证校验 ## 身份证编码解析 ![image-20220414111909659](C:\Users\ASUS\AppData\Roaming\Typora\typora-user-image ...

最新文章

  1. 科学家利用脑机接口让患者正常发声
  2. Maven环境变量配置以及修改阿里云镜像
  3. STL总结 (C++)
  4. 嵩天-Python语言程序设计程序题--第一周:Python基本语法元素
  5. [转]Mysql Join语法解析与性能分析
  6. 工作130:computed
  7. int.TryParse非预期执行引发的思考 ASP.NET -- WebForm -- 给图片添加水印标记 Windows -- 使用批处理文件.bat删除旧文件...
  8. kettle 提交数据量_Kettle数据同步速度调优记录
  9. python 绘制围棋棋盘_围棋专业学员在“庆元旦 育苗杯”少儿围棋比赛中取得优异成绩...
  10. 用jquery替换dojo中的ajax
  11. java生成32位id,java中生成32位随机ID
  12. 如何保护前端JS代码?前端js代码混淆加密
  13. html向上移动图片代码,图片随网页上下移动的代码实例
  14. 【图像处理技术】 | 黑科技解读 之 PS检测、弯曲拉平、切边增强、摩尔纹
  15. Stata数据统计分析软件v16.0版本更新
  16. CAD中插入外部参照字体会变繁体_CAD中形形色色的“替换”技巧你确定都知道了?...
  17. 数据库group by用法
  18. 长波猝灭剂QSY 21NHS,304014-13-9,QSY21 活性酯特点有哪些
  19. 【教育】这么多年的应试教育,成果几何?
  20. 二叉搜索树详解--实现插入和删除

热门文章

  1. 带你揭秘学习编程的7大优势!你get到了吗?!
  2. 转载 PCIe学习(二):PCIe DMA关键模块分析之一
  3. 2012年下半年软件评测师上午试题
  4. finally、catch和return,你真的会用吗?
  5. go-redis 使用
  6. TensorFlow 学习(一)—— tf get variable vs tf Variable ,tf nam
  7. LoadRunner 11压测时碰到错误Error: missing newline in E:\xx\RCV.dat
  8. 安卓笔记侠周报|开源届捷报,React 凯旋而归
  9. arduino与蓝牙模块
  10. Unable to start service Intent U=0: not found