身份证验证

Java身份证验证方法

妖精的绣舞 提交于 2020-03-14 06:40:18
View Code 1 import java.text.ParseException; 2 import java.text.SimpleDateFormat; 3 import java.util.Calendar; 4 import java.util.GregorianCalendar; 5 import java.util.Hashtable; 6 import java.util.Scanner; 7 import java.util.regex.Matcher; 8 import java.util.regex.Pattern; 9 10 public class IDCard { 11 /*********************************** 身份证验证开始 ****************************************/ 12 /** 13 * 身份证号码验证 1、号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码, 14 * 八位数字出生日期码,三位数字顺序码和一位数字校验码。 2、地址码(前六位数) 15 * 表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。 3、出生日期码(第七位至十四位) 16 * 表示编码对象出生的年、月

C#实现中国身份证验证问题

天涯浪子 提交于 2020-01-19 08:37:53
C#中国身份证验证,包括省份验证和校验码验证,符合GB11643-1999标准... 今天写的 C#中国身份证验证,包括省份验证和校验码验证,符合GB11643-1999标准... 理论部分: 15位身份证号码=6位地区代码+6位生日+3位编号 18位身份证号码=6位地区代码+8位生日+3位编号+1位检验码 各省市地区国家代码前两位代码是: 北京 11 吉林 22 福建 35 广东 44 云南 53 天津 12 黑龙江 23 江西 36 广西 45 西藏 54 河北 13 上海 31 山东 37 海南 46 陕西 61 山西 14 江苏 32 河南 41 重庆 50 甘肃 62 内蒙古 15 浙江 33 湖北 42 四川 51 青海 63 辽宁 21 安徽 34 湖南 43 贵州 52 宁夏 64 新疆 65 台湾 71 香港 81 澳门 82 国外 91 18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》中做了明确规定。 GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称“社会保障号码”更名为“公民身份号码”,另外GB11643-1999《公民身份号码》从实施之日起代替GB11643-1989。 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成

JAVA语言身份证验证完整代码

对着背影说爱祢 提交于 2020-01-17 01:48:44
package com.lgr.zikao.utils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.Hashtable; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class IdCardValidate { public static String tipInfo = "该身份证有效!";// 记录错误信息 public static boolean IDCardValidate(String IDStr) throws ParseException { String Ai = ""; // 判断号码的长度 15位或18位 if (IDStr.length() != 15 && IDStr.length() != 18) { tipInfo = "身份证号码长度应该为15位或18位。"; return false; } // 18位身份证前17位位数字

PHP根据身份证号码验证、获取星座、生肖和性别函数

泪湿孤枕 提交于 2019-12-20 07:09:21
首先介绍一下身份证含义 新的18位身份证号码各位的含义: 1-2位省、自治区、直辖市代码; 3-4位地级市、盟、自治州代码; 5-6位县、县级市、区代码; 7-14位出生年月日,比如19670401代表1967年4月1日; 15-17位为顺序号,其中17位男为单数,女为双数; 18位为校验码,0-9和X,由公式随机产生。 举例: 130503 19670401 0012这个身份证号的含义: 13为河北,05为邢台,03为桥西区,出生日期为1967年4月1日,顺序号为001,2为验证码。 15位身份证号码各位的含义: 1-2位省、自治区、直辖市代码; 3-4位地级市、盟、自治州代码; 5-6位县、县级市、区代码; 7-12位出生年月日,比如670401代表1967年4月1日,这是和18位号码的第一个区别; 13-15位为顺序号,其中15位男为单数,女为双数; 与18位身份证号的第二个区别:没有最后一位的验证码。 举例: 130503 670401 001的含义; 13为河北,05为邢台,03为桥西区,出生日期为1967年4月1日,顺序号为001。 居民身份证是国家法定的证明公民个人身份的证件。为了堵塞和制止假居民身份证的流通和使用,在查验和核查居民身份证时可掌握以下几个要点:   一、居民身份证的整体识别   1、居民身份证规格为88mm×60mm,四角呈圆弧状。式样为聚脂薄膜密封

Java验证身份证是否合法

佐手、 提交于 2019-12-03 10:17:21
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.Hashtable; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.text.ParseException; /** * @author open * 使用方法:调用 IDCardUtil.IDCardValidate(str)验证是否为合法的身份证.返回的是一个String,"YES" 代表合法的身份证 ,其他值代表错误信息 * */ public class IDCardUtil { /** * 验证身份证 * @param IDStr * @return "YES" 代表合法的身份证 ,其他值代表错误信息 * @throws ParseException */ public static String IDCardValidate(String IDStr) { String tipInfo = "YES";// 记录错误信息 String Ai = ""; if(null == IDStr || IDStr.trim().isEmpty())

JS验证身份证

匿名 (未验证) 提交于 2019-12-03 00:39:02
话不多说,直接看代码 JS部分 /* * * 身份证15位编码规则:dddddd yymmdd xx p * dddddd:地区码 * yymmdd: 出生年月日 * xx: 顺序类编码,无法确定 * p: 性别,奇数为男,偶数为女 * <p /> * 身份证18位编码规则:dddddd yyyymmdd xxx y * dddddd:地区码 * yyyymmdd: 出生年月日 * xxx:顺序类编码,无法确定,奇数为男,偶数为女 * y: 校验码,该位数值可通过前17位计算获得 * <p /> * 18位号码加权因子为(从右到左) wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2,1 ] * 验证位 Y = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ] * 校验位计算公式:Y_P = mod( ∑(Ai×wi),11 ) * i为身份证号码从右往左数的 2...18 位; Y_P为校验码所在校验码数组位置 * */ // 加权因子 var wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ]; // 身份证验证位值.10代表X var valideCodeArr = [1, 0, 10, 9, 8, 7, 6, 5

身份证验证

匿名 (未验证) 提交于 2019-12-02 23:34:01
身份证验证 附:身份证组成规则 根据《中华人民共和国国家标准GB 11643-1999》中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。顺序码的奇数分给男性,偶数分给女性。校验码是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。 首先写出身份证号,出生日期,年龄,性别几个下拉框并给身份证号写个文本框改变事件 TextChanged=“txt_idCar_TextChanged”, 转到后台身份证号写个文本框改变事件 首先,获取 获取身份证所输入的值 string strShenFengzheng = txt_idCar.Text.Trim(); 然后,用if语句判断当输入身份证的值到达18位时,用正则判断身份证号是否符合规定,如果不符合则弹出提示框,提示身份证不合法 if (strShenFengzheng.Length == 18) { if (!Regex.IsMatch(strShenFengzheng,@"( \d{15}$)|(^\d{18}$)|( \d{17}(\d|X|x) )|(^\d{18} )")) { MessageBox.Show(“身份证不合法!”); //清空文本框 txt

jquery验证二代身份证

倾然丶 夕夏残阳落幕 提交于 2019-11-28 15:49:54
$ ( '#idcardno' ) . blur ( function ( ) { var idcard = $ ( this ) . val ( ) ; var reg = /^\d{17}\d|x$/ ; var is_ok = reg . test ( idcard ) ; 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 ( is_ok ) { var sum = 0 , idx ; for ( var i = 0 ; i < idcard . length - 1 ; i ++ ) { // 对前17位数字与权值乘积求和 sum += parseInt ( idcard . substr ( i , 1 ) , 10 ) * arrExp [ i ] ; } // 计算模(固定算法) idx = sum % 11 ; // 检验第18为是否与校验码相等 if ( arrValid [ idx ] == idcard . substr ( 17 , 1 ) ) { $ ( '

身份证验证的js

我怕爱的太早我们不能终老 提交于 2019-11-28 03:11:33
function isIdCardNo(num) { num = num.toUpperCase(); //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。 if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num))) { //alert('输入的身份证号长度不对,或者号码不符合规定!\n15位号码应全为数字,18位号码末位可以为数字或X。'); //alert('身份证号长度不正确或不符合规定!'); return false; } //验证前2位,城市符合 var aCity={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:"国外"}; if(aCity[parseInt(num

棋牌游戏身份证验证格式

◇◆丶佛笑我妖孽 提交于 2019-11-26 12:57:26
//身份证格式验证 window.OnValidateIdCard = function(idCard) { //15位和18位身份证号码的正则表达式 var regIdCard = / ( [1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3} KaTeX parse error: Expected 'EOF', got '\d' at position 10: )|(^[1-9]\̲d̲{5}[1-9]\d{3}((… )$/; //如果通过该验证,说明身份证格式正确,但准确性还需计算 if (regIdCard.test(idCard)) { if (idCard.length == 18) { var idCardWi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); //将前17位加权因子保存在数组里 var idCardY = new Array(1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2); //这是除以11后,可能产生的11位余数、验证码,也保存成数组 var idCardWiSum = 0; //用来保存前17位各自乖以加权因子后的总和 for (var i = 0; i < 17; i++) {