今天遇到了一个需要验证身份证号的正确性的问题,依据判断规则。自己写了下。希望大家多多补充

规则: 身份证号码校验:

  1. 首先校验长度:15位和18位是可通过校验的

  2. 然后校验编码逻辑,15位身份证号无需校验,校验18位身份证号步骤如下: 1)将身份证号前17位分别乘以下列系数:7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2 2)将步骤1)中的结果相加 3)将步骤2)中的结果除以11,得到余数 4)余数0,1,2,3,4,5,6,7,8,9,10分别对应身份证号最后一位1,0,X,9,8,7,6,5,4,3,2

      例子:以我的身份证号为例,230106199003190813,按照步骤计算过程如下:1)2*7=14,3*9=27,1*5=5,6*4=24,1*2=2,9*1=9,9*6=54,3*9=27,1*10=10,9*5=45,8*4=32,1*2=22)14+27+5+24+2+9+54+27+10+45+32+2  =  2513)251  mod  11  =  94)余数9对应身份证号最后一位是3我的身份证号码通过校验
    复制代码

身份证号码提取有效信息:

  1. 性别:截取身份证号码15-17位,如果是奇数,则为男性;如果是偶数,则为女性。以上面的例子来说明,15-17位是081,是奇数,判断为男性

  2. 出生日期:截取身份证号码7-10位,是出生年 截取身份证号码11-12位,是出生月 截取身份证号码13-14位,是出生日 以上面的例子来说明:7-10位是1990,是我出生的年。月和日同理,不再赘述

首先取到身份证号的值:我这里用idcard;

var pattern = /^[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|x)$/;

   if (!pattern.test(idcard) || idcard == "") {alert("请输入正确的身份证号");return false;}else{var such = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];var sum = 0;for(var i = 0;i <idcard.length-1;i++){for(var j = 0;j<such.length;j++){var product = idcard[i]*such[j];sum += product;}}var result = sum % 11;var example = ['1','0','X','9','8','7','6','5','4','3','2'];if(idcard[17] == example[result]){alert("正确");}else{alert("错误");return false;}}
复制代码

转载于:https://juejin.im/post/5bda75c36fb9a022262a6d4e

JS验证18位身份证号的正确性相关推荐

  1. js 身份证精确校验(支持15位和18位身份证号 )

    js 校验方法 //身份证号合法性验证 //支持15位和18位身份证号 //支持地址编码.出生日期.校验位验证 function IdentityCode(code){var city={11:&qu ...

  2. 18位身份证号藏了什么玄机?用js教你校验身份证

    大家好,想必各位程序猿已经有所发现,而相应地,在日常的开发任务需求了很多跟涉及到用户的都几乎需要用到身份证的校验,因此不留君特意整理出一份身份证号的组成原理以及 校验函数(js版) [身份证号码的规则 ...

  3. 身份证校验(//身份证号合法性验证 //支持15位和18位身份证号//支持地址编码、出生日期、校验位验证)

    window.checkIdNumber=(function () {var vcity = {11: "北京", 12: "天津", 13: "河北 ...

  4. js根据15,18位身份证号获取生日与性别

    15位身份证号:第6.7位为年份,8.9位为月份,10.11为日.最后一位为性别,男为奇数,女为偶数.  18位身份证号:第6.7.8.9位为年份,10.11位为月份,12.13为日.最后一位为性别, ...

  5. 18位身份证号验证算法的原理以及C#实现和在管理系统的应用

    18位身份证号验证算法的原理以及C#实现和在管理系统的应用 本博文介绍一下我自主开发的企业工资管理系统中关于员工18身份证号合法性验证的原理以及采用C#实现的代码.在实际的管理系统中应用!经过我自己的 ...

  6. java中验证18位身份证的正则表达式

    import java.util.regex.Matcher; import java.util.regex.Pattern; /** *只可以验证输入的身份证是否为18位,不可以验证身份证的正确性 ...

  7. mysql根据严格校验15位和18位身份证号是否有效的自定义函数

    验证18位身份证有效性的规则: 1.长度: 2.区划编码: 3.出生日期: 4.最后一位验证: 第一步:对身份证做去空处理: 第二步:对15位身份证号进行验证: 第三步:对18位身份证进行验证: 最后 ...

  8. 18位身份证号编码规则最后一位

    例如某18位身份证号为:ABCDEF YYYY MMDD SSSV 第1位--第6位代表(ABCDEF):表示区域. 第7位--第14位(YYYYMMDD):表示出身日期,例如20140809. 第1 ...

  9. C#一个完整判断18位身份证号正确函数

    C#一个完整判断18位身份证号正确函数 private static bool CheckIDCard18(string CardId){string pattern = @"^\d{17} ...

  10. java8 通过18位身份证号提取用户信息(年龄,生日,姓别)

    工作中经常用到的通过身份证号(18位)提取用户信息(年龄,生日,姓别),分享给大家: 先做一个javabean 存用户信息: package com;import lombok.*;import ja ...

最新文章

  1. 独家 | 全面!手把手教你决策树可视化(附链接代码)
  2. linux 修改系统时间和时区
  3. MVC3 ActionResult 返回类型
  4. ESP8266 Flash
  5. matlab 大于并且小于,Matlab:将大于(小于)1(-1)的元素转换为1(-1)的序列
  6. js date转成 时间字符串_秋招快要开始了,前端笔试中的坑位-JS隐式转换问题
  7. web前端基础(11html5和css)
  8. 老人 android 游戏,其乐融融 -- 给父母玩的游戏 #iOS #Android
  9. html表格上下居中 w3c,DIV+CSS实现表格功能(不支垂直居中)
  10. qlabel显示图片同时鼠标点击画线_怎样将CAJ文档转成JPG图片?
  11. 新西兰梅西大学计算机专业研究生,新西兰梅西大学硕士读几年,新西兰专升硕 | 能进八大,还有机会移民,最快1.5年完成!...
  12. Mac-显示隐藏文件-快捷键与命令行
  13. 行列式与矩阵相关的内容学习
  14. 适合女孩子玩的计算机游戏,小仙女们!NS上7款最适合女孩子玩的游戏盘点
  15. 能力等同于学历吗?|猿代码科技
  16. Python Signal 信号
  17. nova与neutron交互
  18. P1443 马的遍历(洛谷)
  19. 2021-4-19单片机原理及应用作业
  20. python中cut_pandas.cut

热门文章

  1. Android项目开发之--------地铁时光机(二,Floyd算法筛选最短路径及输出)
  2. numpy_absolute函数
  3. RK3399 上电待机,按power按键开机
  4. ietester测试本地html,网站浏览器兼容测试软件–IETester
  5. java门基础学习(五)
  6. ubuntu22.04 耳机没声音 [已解决]
  7. IMO A.688(16) 寝具用品点燃性测试
  8. 互联网防骗指南[摘录58同城]
  9. java j2ee j2se_Java EE / J2EE与J2SE / JDK版本之间的关联
  10. 光电耦合器MOC3041