中国大陆18位身份证校验算法(附JS实现)

光电容积脉搏波PPG信号分析笔记 脉搏波信号PPG分析笔记 阅读详情

大陆18位身份证(第二代身份证)结构:(如下图所示)

 

 

身份号码是一组具有特征组合码,由十七位数字本体码和一位校验码组成。

 

排列顺序从左至右依次为:六位数字地区码,八位数字生日码,三位数字顺序码和一位数字校验码。

 

下面介绍18位身份证号码最后一位校验码的计算方法

 

--------------------------------------------------------------------------------------------

校验方法:

 

(1)先对前17位数字的权求和

        S = Sum(Ci * Vi), i = 0, ... , 16

        Ci:表示身份证号码上第i位置的数字值

        Vi:表示第i位置上的“加权因子”
        加权因子Vi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2

 

(2)计算模(固定算法)

        Y = mod(S, 11)

 

(3)将计算模Y与对应的校验码校验
        Y:        0 1 2 3 4 5 6 7 8 9 10 (通过Y取得对应校验码与身份证的第18位校验)
        校验码: 1 0 X 9 8 7 6 5 4 3 2

 

 

下面附上Javascript实现代码

 

 

/**
* 检验18位身份证号码(15位号码可以只检测生日是否正确即可)
* @author wolfchen
* @param cid 18为的身份证号码
* @return Boolean 是否合法
**/
function isCnNewID(cid){
    var arrExp = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];//加权因子
    var arrValid = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2];//校验码
    if(/^\d{17}\d|x$/i.test(cid)){
        var sum = 0, idx;cid = cid.toString();
        for(var i = 0; i < cid.length - 1; i++){
            // 对前17位数字与权值乘积求和
            sum += parseInt(cid.substring(i, 1), 10) * arrExp[i];
        }
        // 计算模(固定算法)
        idx = sum % 11;
        // 检验第18为是否与校验码相等
        return arrValid[idx] == cid.substring(17, 1).toUpperCase();
    }else{
        return false;
    }
}

 

 

 

 

学习笔记7--激光雷达标定 本系列博客包括6个专栏,分别为:《自动驾驶技术概览》、《自动驾驶汽车平台技术基础》、《自动驾驶汽车定技术》、《自动驾驶汽车环境感知》、《自动驾驶汽车决策与控制》、《自动驾驶系统设计及应用》,笔者不是自动驾驶领域的专家,只是一个在探索自动驾驶路上的小白,此系列丛书尚未阅读完,也是边阅读边总结边思考,欢迎各小伙伴,各大牛们在评论区给出建议,帮笔者这个小白挑出错误,谢谢! 此专栏是关于《自动驾驶汽车环境感知》书籍的笔记。 2.激光雷达标定 2.1 概述 激光雷达内参标定:内部激光发射器坐标系与雷达本 阅读详情

相关推荐

心电图心跳分类数据集.zip

心电图心跳分类数据集.zip

js身份证校验方法集合

校验方法一: /* * 身份证15编码规则:dddddd yymmdd xx p * dddddd:6地区编码 * yymmdd: 出生年()月日,如:910215 * xx: 顺序编码,系统产生,无法确定 * p: 性别,奇数为男,偶数为女 * ...

滴水石穿 3342

JS实现的验证身份证及获取地区功能示例

主要介绍了JS实现的验证身份证及获取地区功能,结合实例形式分析了JS字符串、数组及正则操作相关技巧,需要的朋友可以参考下

如何用【javascript实现身份证18校验码)的计算方法

1、将前面的身份证号码17数分别乘以不同的系数。 从第一到第十七的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。 2、将这17数字和系数相乘的结果相加。 3、用加出来和除以11,看余数是多少? 4、余数只可能有0-1-2-3-4-5-6-7-8-9-10这11个数字。 其分别对应的最后一身份证的号码为1-0-X-9-8-7-6-5-4-3-2。 5、通过上面得知如果

luckyyulun的博客 752

js校验 身份证号18

function isCardIDValid(code) { const city = { 11: '北京', 12: '天津', 13: '河北', 14: '山西', 15: '内蒙古', 21: '辽宁', 22: '吉林', .

weixin_46802330的博客 1075

身份证校验js,包括了第18数字的校验

function checkIdentifyCard(identifyField) {     var length = identifyField.value.length;     var reg;     var checkResult = true;     if (length != 15 && length != 18) {         checkResult = fa

a610009281的博客 1115

18身份证号码检验JS脚本函数修正

function CheckIDCard(StrNumber) {//判断身份证号码格式函数//公民身份号码是特征组合码,//排列顺序从左至右依次为:六数字地址码,八数字出生日期码,三数字顺序码和一数字校验码//身份证号码长度判断if(StrNumber.length18){alert("填写的身份证号码长度不正确,请重新填写!");return false;}//身份证号码最后一

xqf222的专栏 2785

身份证校验原理深度剖析:IDValidator如何实现GB 11643-1999标准

身份证号码验证是每个中国公民都会遇到的重要场景。今天,我们将深入探讨**IDValidator**这个专业的身份证校验库,看看它是如何严格遵循**GB 11643-1999国家标准**来实现精准验证的。本文将为你揭示身份证号码背后的科学原理,让你全面了解这个看似简单却蕴含复杂算法的验证过程。😊 ## 📊 身份证号码的结构解析 根据**GB 11643-1999国家标准**,中国身份证号

gitblog_00895的博客 986

JS 身份证号码目前有15和18 检测样例

function checkIdcard(idcard){                          //检查大陆身份证号码        var idcard = idcard.replace(/(^\s*)|(\s*$)/g, ""); //去除两边的空格

Haibing的博客 787

[程序设计]前端Web页面使用原生JavaScript实现校验身份证号码在算法层面是否合法

中国大陆居民身份证号码第18校验码,用来验证本体码的。因此可以对身份证号码第18进行校验,来验证身份证号码。由于校验码系统算法的原因,如果身份证号码前17中有。中对校验码描述如下图。

qq_25619143的博客 942

js验证1518身份证

本篇文章是本人在网上搜集了一些验证,然后又个人进行一定修改的关于身份证的验证,欢迎修改指正。。。。。 function IdCardValidateRule(idCard) { vartip; //1.传入15或者18身份证号码,18号码末可以为数字或X idCard = idCard.toUpperCase(); //2.去掉身份证的左右空...

weixin_30858241的博客 145

身份证18最后一计算函数

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34357962的博客 726

Vue + Element UI 表单校验身份证号码验证的完整实现与避坑指南

本文详细介绍了在Vue.js和Element UI框架下实现身份证号码验证的完整方案,包括格式校验、行政区划校验校验码验证。通过代码示例和避坑指南,帮助开发者构建严谨的表单校验逻辑,提升后台管理系统的数据质量。

weixin_30580341的博客 293

大陆居民身份证真伪校验

var IdCardValid = {//身份证检查 isIdCard : function(_id) { var returnObj = new Object(); var id = $.trim(_id.toUpperCase()); var idArray = this._splitId(id); ...

weixin_30439031的博客 107

检验身份证(包含港澳台)

/由于不确定香港身份证号是填写C668668(9),还是C6686689,所以两个都通过了。https://tw.bmcx.com/ (便民查询网)// 对前17数字与权值乘积求和。// 检验第18为是否与校验码相等。台湾身份证号:A204144891。香港身份证号:Q3317605。"请填写正确的身份证号码!// 计算模(固定算法)// 香港身份证校验。// 澳门身份证校验。// 台湾身份证验证。

qq_44681558的博客 906

如何快速识别伪造身份证:IDValidator防欺诈应用实战指南

在数字化时代,身份证号码验证已成为金融、电商、社交平台等众多应用的关键安全环节。**IDValidator**作为一款专业的中国大陆个人身份证号码验证器,能够有效检测伪造身份证号码,为您的应用提供可靠的防欺诈保障。这款轻量级JavaScript工具仅3KB大小,却包含了完整的身份证验证算法,支持1518身份证号码的快速验证。 ## 🔍 为什么需要身份证验证工具? 身份证号码不仅仅是个人

gitblog_00661的博客 362

正则判断身份证格式

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34138255的博客 662

IDValidator核心功能揭秘:从合法性验证到地址信息解析全攻略

身份证号码验证是许多中国互联网应用的基础需求,而IDValidator.js正是解决这一需求的终极工具。这个轻量级JavaScript库专门用于验证中国大陆个人身份证号码,支持1518格式,提供从基本验证到详细信息解析的一站式解决方案。 ## 📋 身份证验证的核心功能 IDValidator.js的核心功能围绕三个主要API展开,让开发者能够轻松处理身份证验证的各种场景: ### 1

gitblog_00669的博客 384

javascript正则验证身份证号

/** 中国公民身份证号码最小长度。 */ var CHINA_ID_MIN_LENGTH = 15; /** 中国公民身份证号码最大长度。 */ var CHINA_ID_MAX_LENGTH = 18; /** 每加权因子 */ var power = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; /** 城市码 */ v

wxp0624的博客 798

js常用身份证号,手机号校验

//校验手机号function checkPhone(phone){    var myreg = /^(((13[0-9]{1})|(14[0-9]{1})|(15[0-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+\d{8})$/;    if(!myreg.test(phone))    {        alert('请输入有效的手机号码!');        ret...

wudawei071193的博客 396

jQuery身份证验证插件

jQuery身份证验证插件 /*! * jQuery isIDCard Plugin v1.0.0 * http://www.cnblogs.com/cssfirefly/p/5629561.html * * Copyright 2016 link * Released under the MIT license */ (function(factory) { ...

weixin_30780649的博客 160
上一篇: 对Table或TR元素使用innerHTML时报“未知运行时错误”解决方案。
下一篇: IE下使用location对象有时会出现“没有权限”的错误
wolfcyl
博客等级 码龄19年 29粉丝 16原创
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值