验证身份证号规则(验证身份证号是否正确)

案例:

某公民的身份证号: 34052419800101001X  (18位)

加权因子表:

位置序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
加权因子 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2

身份证号的前17位数字分别乘以对应的加权因子,并且相加。

第一步:

3*7+9*4+10*0+5*5+8*2+4*4+2*1+1*9+6*8+3*0+7*0+9*1+10*0+5*1+8*0+4*0+2*1=189

第二步:

189%11 = 2

校验码表:

余数 0 1 2 3 4 5 6 7 8 9 10
校验码 1 0 X 9 8 7 6 5 4 3 2

结果 2 对应的是 X,所以以上身份证号验证通过。

原文地址:https://www.cnblogs.com/ldl326308/p/10218443.html

时间: 2024-10-10 00:46:39

验证身份证号规则(验证身份证号是否正确)的相关文章

js实现完美身份证号有效性验证

最近需要对身份证合法性进行验证,实名验证是不指望了,不过原来的验证规则太过简单,只是简单的验证了身份证长度,现在业务需要加强下身份证验证规则,网上找到了不少资料,不过都不合偶的心意,无奈只好直接写一个,代码还是用自己的舒服哈 已实现功能:支持15位和18位身份证号,支持地址编码.出生日期.校验位验证 代码如下: /*根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次为:六位数字

【C#】身份证号正确性验证及正则表达式格式验证

身份证前两位各省对应的编号是: 1.华北地区:北京市|11,天津市|12,河北省|13,山西省|14,内蒙古自治区|15: 2.东北地区: 辽宁省|21,吉林省|22,黑龙江省|23: 3.华东地区: 上海市|31,江苏省|32,浙江省|33,安徽省|34,福建省|35,江西省|36,山东省|37: 4.华中地区: 河南省|41,湖北省|42,湖南省|43: 5.华南地区:广东省|44,广西壮族自治区|45,海南省|46: 6.西南地区: 四川省|51,贵州省|52,云南省|53,西藏自治区|5

JavaScript 身份证号有效验证详解及实例代码

JavaScript 身份证号有效验证详解及实例代码 这篇文章主要介绍了JavaScript 身份证号有效验证详解及实例代码的相关资料,需要的朋友可以参考下 JavaScript验证身份证号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 <%@ page language="jav

详细验证身份证号码规则和姓名(汉字)的java代码

一.验证汉字的正则表达式 /** 是否是汉字的正则 */ private String regexIsHanZi = "[\\u4e00-\\u9fa5]+"; * @param str要匹配的字符串 * @param reg 正则 public static boolean matchRegular(String str, String reg) { Pattern pattern = Pattern.compile(reg); Matcher matcher = pattern.m

证件类型为身份证号时进行身份证校验

需求:代办人身份证号改为代办人证件类型(默认为身份证号),后面跟着号码,房主和代办人的证件类型为身份证号时进行身份证校验 sf_ghgl_add.jsp <td class="labelCss">代办人证件类型:</td> <td><select id="zjlx" width="10px" class="easyui-combobox" data-options="url:

按GB 11643标准对大陆身份证号码分析验证

按照GB 11643标准进行身份证验证,然后GB/T 2260采用的是2013标准,因为实在无法找到GB/T 2260-84标准,所以实际会出现正确的身份证也无法识别的情况,这时候可以通过设置要验证的AreaLevel来降低验证级别,如果能找全所有GB/T 2260标准的话,代码也就能加入按生日判断该采用哪个标准的功能,下面是具体代码 相关枚举 /// <summary> /// 身份证号码长度 /// </summary> public enum CardLength { All

身份证真实性校验js、身份证长度正则验证

身份证号码真实性校验 <input type="text" value="请输入身份证号" id="cards" ><button onclick="isIdCardNo(cv)">ok</button> <script> function $(id){ return document.getElementById(id);}var cv;  //获取input框的值$('car

[转]验证E-mail、用户名、社保号、IP地址等10个实用的PHP正则表达式

1. 验证E-mail地址 这是一个用于验证电子邮件的正则表达式.但它并不是高效.完美的解决方案.在此不推荐使用. $email = "[email protected]"; if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)) { echo "Your email is ok.";

根据身份证号获取该身份证号所属人的年龄

根据身份证号获取该身份证号所属人的年龄, 并在方法中抛出身份证号空异常.身份证号格式异常.在主方法中调用该方法, 并捕获异常,输出相关的异常信息. 代码: package exception; import java.util.Scanner; public class ShenFen { public static void main(String[] args) { // TODO Auto-generated method stub Scanner cc = new Scanner(Sys

Android中验证输入是否为汉字及手机号,邮箱验证,IP地址可用port号验证

1,验证是否为汉字 // 验证昵称 private boolean verifyNickname() { String nickname = edt_username.getText().toString(); if (nickname == null || nickname.length() == 0) { edt_username.setError("不能为空"); return false; } int len = 0; char[] nickchar = nickname.to