身份证号码真伪查询及信息提取
如何辨别身份证的真伪
如何辨别身份证的真伪一、1、看身份证编号:15位身份证编号的最后一位数字应该是男单女双,18位身份证编号的倒数第二位应该是男单女双,18位编号顺序从左到右依次为:6位地址号码,8位出生日期码,3位顺序码,1位校验码。
2、看申请年龄:公民必须年满16周岁方可办理3、看有效期限,年满16至25周岁的公民,有效期为10年,26周岁至45周岁,有效期为20年,46周岁以上长期有效。
4、看签发日期及出生日期,月份日期为个位数的,前面不可以加0。
5、看身份证字体,1996年之后的,原则为机器打印,而不是手写。
6、看身份证背后特征,右上角从外往里数第四圈花纹有一处不交叉;身份证的“份”字单人旁的那一竖上面比下面细,其他字体的竖一样宽。
7、看公安局的盖章特征,身份证正面左下角,红色公安局的“局”字,右边最后一笔与尸字的一竖基本对齐;圆章中盾牌的形状,1996年之前盾牌上面的两条为内弧线,之后为线段。
8、看身份证的正面:中国/CHINA字体及长城防伪标线清晰,有立体感,背面网纹一致。
9、正面“出生”两字,“生”的位置比“出”低10、公安局的盖章,如果有某县,县中最长的一横是平的,横的最后一点不是一点上钩。
11、身份证正面,中国地图的内围线,在性别处是不连续的,(是断开的,)其他是连续的。
12、你找个网吧,试下就知道了。
真的话,网吧的电子识别会出现的各种信息!二、我们现在的新版真身份证做的十分精致,一般来说整体的手感是有前凸后平的感觉,同时四周的压封平实、清透,辨别起来比较容易,尤其是手感方法是骗不了大家的,只要在手里触摸的时候,大家记住我的办法,一般情况下可以识别。
另外一个十分明显的区别是真身份证反面右上角倒数第四根相绞的绿色网线,这点大家要千万记住,在上有一个香蕉状网纹,这是一个和假身份证有重大区别的地方,假身份证肯定是没有的,这样大家一眼就可以区别开来了。
我们自己的真身份证上有一个咱们中国版图海南岛屿与台湾岛屿,这是大家需要注意的是下方至编号处有数个点状和条状岛屿相连,这个相连的也是一个最大的辨别方法,一般假身份证是不会有的,而且就算有也是有很大区别的,大家互相对照就可以识别了。
从身份证号码提取年龄性别籍贯信息公式
姓名身份证号码提取性别提取出生日期提取现在年龄提取生肖(从出身日期中提取)身份证号码是否正确提取所属省份(从地址码提取)提取所属地区(从地址码提取)张三110221*********女1965/8/1556蛇TRUE北京市(市辖区)昌平李四510221************男1974/12/147虎TRUE四川省重庆市王五132426*********男1959/6/2062猪TRUE河北省保定地区完县周六140121*********女1970/2/2851狗TRUE山西省太原市清徐县钱七350583************男1978/10/1243马TRUE福建省泉州市南安市彭九511801*********女1952/9/2569龙TRUE四川省雅安市市辖区刘二620123*********女1979/5/1342羊TRUE甘肃省兰州市榆中县说明如下:以B2单元格为例提取生日1965/8/15此为公式中第1种方法的结果公式1=DATE(MID(B2, 7,IF(LEN(B2)= 18,4,2)),MID( B2,IF(LEN(B2) =18,11,9),2), MID(B2,IF(LEN (B2)=18,13,11 ),2))2=--TEXT(MID(B2,7 ,6+(LEN(B2)=1 8)*2),"0-00-00")3=TEXT(RIGHT(T EXT((0&MID(B2 ,7,11))-500,"1900-00-00,;!0"),10), "e-mm-dd;;;错误")4=TEXT(TEXT((0 &MID(B2,7,11) )-500,"00-00-00,;!0"),"e-mm-dd;;;错误")5=TEXT(MID(REP LACE(B2,7,,IF (LEN(B2)=15,1 9,)),7,8),"00 00-00-00")6=TEXT(REPLACE (MID(B2,7,6+( LEN(B2)=18)*2 ),1,,IF(LEN(M ID(B2,7,6+(LE N(B2)=18)*2)) =6,19,)),"000 0-00-00")7D(B2,7,6+(LEN (B2)=18)*2)," 0-00-00"),"emmdd")8=IF(LEN(B2)=1 5,"19"&MID(B2 ,7,6),MID(B2, 7,8))9=IF(LEN(B2)=1 5,19,"")&MID( B2,7,6+(LEN(B 2)=18)*2)提取性别女此为公式中第1种方法的结果公式1=IF(MOD(IF(LE N(B2)=15,MID( B2,15,1),MID( B2,17,1)),2)= 1,"男","女")2=IF(MOD(RIGHT (LEFT(B2,17)) ,2),"男","女")提取生肖蛇此实例引用的是出生日期公式=MID("鼠牛虎兔龙蛇马羊猴鸡狗猪",MOD(YEAR(D2 )-4,12)+1,1)15位改18位110221196508152247注意此公式是数组。
身份证号码提取年龄、出生日期、性别等信息
FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#VALUE! #VALUE! #VALUபைடு நூலகம்! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!
通过身份证号码提取籍贯、性别、出生年月、年龄、生肖等信息
女;[=1]男"),"")) D(A3,9,2),MID(A3
,11,2)),"")),TOD
AY(),"Y"),"")
狗
男
37
河南省汝州市
蛇
女
30
云南省呈贡县
龙
பைடு நூலகம்
云南省呈贡县
↑
↑
返回结果为周 此列数据需要用到的籍贯
岁,若需取虚 代码,存放在“籍贯代码
岁,可在公式
”工作表中。
后输入:+1
410482198209201793
错误
1982-09-20
530121198903119562
错误
1989-03-11
53012119760427732
位数不对
←号码为空
↑
↑
为侵犯隐私,上述号码全 号码不存在、位数不对(非
部为错误的号码,大家可 18位)等情况,会报错。
以自行录入正确的号码进
行测试。
",MOD(MID(A3,7,4 女;[=1]男
TE(MID(A3,7,4),M
),12)+1,1),"") "),IF(LEN(A3)=15 ID(A3,11,2),MID(
,
A3,13,2)),IF(LEN
TEXT(MOD(MID(A3, (A3)=15,DATE("19
15,1),2),"[=0] "&MID(A3,7,2),MI
身份证号码
纠错
出生年月
441622198509284167 410482198209201795
身份证号里的信息提取
身份证号里的信息提取一、从身份证号中提取“出生年月日”假定身份证号在单元格A1 ,是“xxxxxx20001212xxxx”。
先考虑身份证号是18位的,出生年月日位置固定,所以可以通过MID函数摘取。
=MID(A1,7,8)意思是在A1 的文本里,从第7个字符开始,摘取8个字符。
这样会返回一个8位的文本(20001212)。
再通过TEXT函数改变字符格式:=TEXT(MID(A1,7,8),"0000-00-00")这样会返回2000-12-12。
不过这是一个文本格式,用这个格式是不能运算的。
用DATEVALUE函数就可以把文本改成可以运算的数值了。
=DATEVALUE(TEXT(MID(A1,7,8),"0000-00-00"))记得要修改单元个格式来显示日期,不然就会看见数字36872,实际上就是2000年12月12日的数值。
如果你的数据里,全都是新的身份证号,直接用这个公式就可以了。
如果是15位的身份证,MID(A1,7,6)会返回一个6位的文本(YYMMDD)。
用TEXT函数改变字符格式的时候,记得年份只有两个位数,所以是:=TEXT(MID(A1,7,6),"00-00-00")为了确保DATEVALUE知道头四位是年份,所以我们要把头两位加上。
如果年份是在00年到10年,就假定是20XX年,不然就是19XX年。
从A1 摘两位年份就是MID(A1,7,2),通过VALUE改成数字,再判断是否小于等于10:=IF(VALUE(MID(A1,7,2))<=10,20,19)用文本连接& 把上面六位的日期接上:=IF(VALUE(MID(A1,7,2))<=10,20,19)&TEXT(MID(A1,7,6),"00 -00-00")最后用DATEVALUE改成数值:=DATEVALUE(IF(VALUE(MID(A1,7,2))<=10,20,19)&TEXT( MID(A1,7,6),"00-00-00"))要把两个情况合并考虑,先用LEN函数决定A1 单元格的字符数,然后用IF函数,如果是18位,就用第一个公式;如果是15位,就用第二个公式;都不是就返回错误。
用Excel从身份证号码中提取信息(年龄、性别、出生地)
用Excel从身份证号码中提取信息(年龄、性别、出生地)出生年月日信息提取:方法一:在记录列中输入公式:=--TEXT(MID(B2,7,6+IF(LEN(B2)=15,0,2)),"#-00-00"),往下复制,无论15位还是18位身份证号码全部搞定,方法最简单。
方法二、在记录列中输入公式:=--IF(LEN(B2)=15,TEXT(MID(B2,7,6),"##-00-00"),TEXT(MID(B2,7,8),"####-00-00")),往下复制,无论15位还是18位身份证号码全部搞定,公式增加了几个字符,原理差不多,结果一致。
原理:使用函数text、if、mid、len。
注意:1、B列存放身份证号码。
存放在其它列,则在公式中作相应调整。
2、计算出错(#V ALUE!),说明身份证号码有错。
3、日期显示格式,可在单元格格式中设置。
性别信息提取:在记录列中输入公式:=IF(LEN(B2)=15,IF(MOD(RIGHT(B2),2)=0,"女","男"),IF(MOD(LEFT(RIGHT(B2,2)),2)=0,"女","男"))无论15位还是18位身份证号码全部轻松完成。
原理:使用函数IF、LEN、MOD、LEFT、RIGHT。
注意:1、B列存放身份证号码。
存放在其它列,则在公式中作相应调整。
2、计算出错(#V ALUE!),说明身份证号码有错。
出生地信息提取:在记录列中输入公式:=LEFT(B2,6),往下复制,然后根据代码用VLOOKUP查询发证地或者是出生地信息。
Excel文件模板:从身份证号码中提取信息使用的模板:使用Excel从身份证号码提取信息.xls点击该图标,打开该EXCEL文件,另存为××文件,即可使用。
谢谢你的使用。
从身份证中提取人员信息方法
LEN(C2)=15:检查身份证号码的长度是否是15位。
MID(C2,15,1):如果身份证号码的长度是15位,那么提取第15位的数字。
MID(C2,17,1):如果身份证号码的长度不是15位,即18位身份证号码,那么应该提取第17位的数字。
MOD(IF(LEN(C2)=15,MID(C2,15,1),MID(C2,17,1)),2):用于得到给出数字除以指定数字后的余数,本例表示对提出来的数值除以2以后所得到的余数。
IF(MOD(IF(LEN(C2)=15,MID(C2,15,1),MID(C2,17,1)),2)=1,"男","女"):如果除以2以后的余数是1,那么B2单元格显示为“男”,否则显示为“女”。
回车确认后,即可在B2单元格显示正确的性别信息,接下来就是选中填充柄直接拖曳。如图2所示,现在这份报表无论是提取信息或是核对,都方便多了
一、分析身份证号码
Байду номын сангаас
其实,身份证号码与一个人的性别、出生年月、籍贯等信息是紧密相连的,无论是15位还是18位的身份证号码,其中都保存了相关的个人信息。
15位身份证号码:第7、8位为出生年份(两位数),第9、10位为出生月份,第11、12位代表出生日期,第15位代表性别,奇数为男,偶数为女。
二、提取个人信息
这里,我们需要使用IF、LEN、MOD、
MID、DATE等函数从身份证号码中提取个人信息。如图1所示,其中员工的身份证号码信息已输入完毕(C列),出生年月信息填写在D列,性别信息填写在B列。
1. 提取出生年月信息
由于上交报表时只需要填写出生年月,不需要填写出生日期,因此这里我们只需要关心身份证号码的相应部位即可,即显示为“7208”这样的信息。在D2单元格中输入公式“=IF(LEN(C2)=15,MID(C2,7,4),MID(C2,9,4))”,其中:
从身份证号码提取出生日期
从身份证号码提取出生日期、性别、年龄等信息早期的身份证号码为15位数字,现在使用的身份证号码为18位数字,它们的含义如下:(1)15位:1-6位为地区代码,7-8位为出生年份(2位),9-10位为出生月份,11-12位为出生日期,第13-15位为顺序号,这3位奇数为男,偶数为女。
(2)18位:1-6位为地区代码,7-10位为出生年份(4位),11-12位为出生月份,13-14位为出生日期,第15-17位为顺序号,同上,第18位为效验位。
在做员工档案管理的工作时,有时希望通过身份证号码,自动提取出各个员工的出生日期、性别、年龄等信息。
现在我们就通过几个公式,来得到这些信息。
1、出生日期=IF(LEN(A2)=15,CONCATENATE("19",MID(A2,7,2),"/",MID(A2,9,2),"/",MID(A2,11,2)),CO NCATENATE(MID(A2,7,4),"/",MID(A2,11,2),"/",MID(A2,13,2)))LEN函数是检测这个身份证号码的数字位数,然后通过IF判断函数对15位或18位的情况做出不同处理。
CONCATENATE函数将提取出的分别代表“年”、“月”、“日”的信息,以及分隔符“/”等内容,合并成一个文本字符串。
MID函数的做用是从身份证的某个位置开始,取出若干字符。
比如MID(A2,7,2),就是将身份证号码(放在A2单元格中),从左边数第七个字符开始,取出2个字符。
2、性别=IF(LEN(A2)=15,IF(VALUE(RIGHT(A2,3))/2=INT(VALUE(RIGHT(A2,3))/2),"女","男"),IF(VALUE(MID(A2,15,3))/2=INT(VALUE(MID(A2,15,3))/2),"女","男"))由于代表性别的数字中,偶数为“女”,奇数为“男”,所以在这个公式中用VALUE函数将取出的字符串变成数字,再除以2,看是否能整除,因为奇数是不能整除的。
Java验证身份证号码及提取生日信息
Java验证⾝份证号码及提取⽣⽇信息Java学习第⼀站,导师给布置的作业题,验证⾝份证号码的合法性并提取⽣⽇信息。
第⼀次写Java代码,第⼀次⽤博客记录学习进程,略紧张,对Java变量的命名还停留在C++的命名法阶段,吼吼~~现在开始正题。
问题说明:⽬前,我国⼤部分地区都使⽤的是第⼆代⾝份证,第⼆代⾝份证号码的位数为18位。
但公安部没有下发统⼀的关于停⽤第⼀代⾝份证的⽂件,第⼀代⾝份证中有15位和18位⾝份证号的混⽤。
15位⾝份证号码:排列顺序从左⾄右依次为:6位数字地址码,6位数字出⽣⽇期码,3位数字顺序码,其中出⽣⽇期码不包含世纪数。
18位⾝份证号码:公民⾝份号码是特征组合码,由17位数字码和1位校验码组成。
排列顺序从左⾄右依次为:6位数字地址码,8位数字出⽣⽇期码,3位数字顺序码和1位数字校验码。
【地址码】:表⽰编码对象常住户⼝所在县(市、旗、区)的⾏政区划代码。
前两位代码表⽰省、⾃治区、直辖市、特别⾏政区:——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:"国外"中间两位代码表⽰市、地区、⾃治州、盟、直辖市所辖市辖区、县汇总码、省(⾃治区)直辖县级⾏政区划汇总码,其中:——01~20、51~70表⽰市,01、02还⽤于表⽰直辖市所辖市辖区、县汇总码;——21~50表⽰地区、⾃治州、盟;——90表⽰省(⾃治区)直辖县级⾏政区划汇总码。
身份证号码的录入与信息提取
身份证号码的录入与信息提取作者:吴加强来源:《电脑知识与技术·经验技巧》2009年第10期每年开学时,经常发现各小学上报来的学生的姓名、性别、出生年月、年龄等信息或多或少的有错误。
每年都要把学生信息打印出来让各班主任校对、勘误,非常麻烦,大家也怨声载道。
安徽省从今年开始要求学生在入学时录入身份证号码,那么如果我们能利用Excel的函数功能,使录入的学生身份证号码自动生成性别、出生年月和年龄等信息,那岂不是省时省力又省心的大好事吗。
下面让我们一起来探讨一下吧!一、身份证号码的录入现在学生的身份证号都是18位,而Excel默认的数字录入只能正确显示前面15位,后面3位都显示为0,那么该怎么办呢?其实只需要改变单元格的数字格式就可以了,将原来默认的“常规”更改为“文本”。
常用的有两种方法:1. 在英文标点的状态下,先输入单引号“,”再输入身份证号码(如图1)。
这种输入方法比较适合少量学生的身份证号码的输入。
2. 首先设置单元格的格式:选中所有需要录入身份证号码的单元格,然后单击“格式”|“单元格”,在弹出“单元格格式”对话框中选中“数字”选项,再在分类项里单击“文本”,最后单击“确定”即可(如图2)。
然后逐个录入学生的身份证号码。
如果要大量输入同一个地方的身份证号码,可以采用下面的两种方法来提高输入的速度:(1)首先在H列单元格输入身份证号码的后十位数字,接着在D2单元格输入公式“=34292319&H2”,按回车键,再将鼠标移至单元格右下角,当鼠标指针变成+形状时,拖动至填充的最后一个单元格,即可完成自动填充(自动填充方法一),然后将该列数据复制,并在原位置“选择性粘贴”,弹出“选择性粘贴”对话框,选择“数值”确定即可,最后把不需要的H列数据清空。
(2)首先自定义单元格的格式:选中所有需要录入身份证号码的单元格,然后单击“格式”|“单元格”,在弹出“单元格格式”对话框,选中“数字”选项,再在分类项里单击“自定义”,在类型中输入“34292319?”最后单击“确定”(如图3)。
EXCEL中如何提取身份证出生日期和性别信息以及检验身份证号码的正确性
EXCEL中如何提取身份证出生日期和性别信息以及检验身份证号码的正确性中国居民身份证号码是一组特征组合码,原为15位,现升级为18位,其编码规则为:15位:6位数字常住户口所在县市的行政区划代码,6位数字出生日期代码,3位数字顺序码。
18位:6位数字常住户口所在县市的行政区划代码,8位数字出生日期代码,3位数字顺序码和1位检验码。
其中3位数字顺序码,是为同一地址码的同年同月同日出生人员编制的顺序号,偶数的为女性,奇数的为男性。
1、提取籍贯地区的行政区划代码(A2为身份证号,下同)15与18位通用:=LEFT(A2,6)如果有一个编码和省份地区的对照表,可以用VLOOKUP函数来提取地区信息。
2、提取出生日期信息=--TEXT(MID(B5,7,6+(LEN(B5)=18)*2),"0-00-00")15位:=--TEXT(19&MID(A2,7,6),"#-00-00")18位:=--TEXT(MID(A2,7,8),"#-00-00")15与18位通用:=--TEXT(IF(LEN(A2)=15,19,"")&MID(A2,7,6+IF(LEN(A2)=18,2,0)),"#-00-00")简化公式:=--TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),"#-00-00")(请将输入公式的单元格格式设置为日期格式)提取年龄=DA TEDIF(TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),"00-00-00"),T ODAY(),"y" )3、提取性别信息15位:=IF(MOD(RIGHT(A2),2)=1,"男","女")18位:=IF(MOD(MID(A2),17,1)=1,"男","女")15与18位通用:=IF(MOD(MID(A2,IF(LEN(A2)=15,15,17),1),2)=1,"男","女")简化公式:=IF(MOD(RIGHT(LEFT(A2,17)),2),"男","女")4、检验身份证号码的正确性=IF(LEN(D2)=18,MID("10X98765432",MOD(SUMPRODUCT(MID(D2,ROW(INDIR ECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(D2),IF(LEN(D2)=15,I SNUMBER(--TEXT(19&MID(D2,7,6),"#-00-00"))))5、15位升为18位=IF(LEN(A2)=15,REPLACE(A2,7,,19)&MID("10X98765432",MOD(SUMPRODUCT(MID( REPLACE(A2,7,,19),ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1 ,1),A2)6、18位转换为15位=IF(LEN(A2)=18,LEFT(REPLACE(A2,7,2,),15),A2)7、示例表中公式:B2=IF(LEN(A2)=18,MID("10X98765432",MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT(" 1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(A2),IF(LEN(A2)=15,ISNUM BER(--TEXT(19&MID(A2,7,6),"#-00-00"))))C2=IF(A2<>"",TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),"#-00-00")+0,) D2=IF(A2<>"",IF(MOD(RIGHT(LEFT(A2,17)),2),"男","女"),)E2=IF(A2<>"",DATEDIF(TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),"#-00-00"), TODAY(),"y"),)F2=IF(A2<>"",VLOOKUP(LEFT(A2,2),地区表!A:D,2,),)H2=IF(LEN(A2)=15,REPLACE(A2,7,,19)&MID("10X98765432",MOD(SUMPRODUCT(MID( REPLACE(A2,7,,19),ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1 ,1),A2)I2=IF(LEN(A2)=18,LEFT(REPLACE(A2,7,2,),15),A2)。
提取身份证号码的特定信息
提取身份证号码的特定信息许多用户径常使用Excel函数来提取身份证号码的相关信息,其实利用Word的Application 事件也能完成这样的工作,如图287-1所示。
图287-1 输入身份证号码后自动提取相关信息的表格中国公民的身份证号码是一种特征组合码,早期的为15位,现在的为18位。
15位号码的规律:从第7位至第8位是出生的年份,第9位至第10位是出生的月份,第11位至第12位是出生的日子,最后3位是顺序码,其中顺序码的最后一位是判断性别的根本,最后一位是奇数是男性,偶数则是女性。
18位号码的规律:从第7位至第10位是出生的年份,第11位至第12位是出生的月份,第13位至第14位是出生的日子,第15至17位是顺序码,最后1位是校验码。
其中顺序码的最后一位是判断性别的根本,即号码的倒数第二位是奇数则是男性,偶数则是女性。
下面利用这个规律,结合Application事件来演示此过程。
步骤一按如图287-1所示的样式制作3个表格,并在相应的位置分别填入“姓名:”、“身份证号码:”、“性别:”、“出生年月:”。
步骤二按<Alt+F11>组合键打开【Visual Basic编辑器】窗口,依次单击菜单【插入】→【类模块】,在【属性】窗口中修改类模块的名称为“clsIDCard”,如图287-2所示。
图287-2 插入一个类模块,并修改其名称步骤三在类模块“cls DCard”的代码窗口中输入如下代码。
Public WithEvents App As Word.Application'声明一个包含事件的Application 类型对象Private Sub App_WindowSelectionChange(ByVal Sel As Selection)On Error Resume NextDim idString As String, idLen As IntegerDim sYear As String, sMonth As StringDim sYearAndMonth As StringDim sLadyOrGentleman As StringDim isSex As StringDim isSexChar As IntegerWith Selection.Tables(1)idString = .Range.Cells(5).Range.TextidLen = Len(idString)'如果是15位的身份证If idLen = 17 Then'确定年月sYear = Mid(idString, 7, 2)sMonth = Mid(idString, 9, 2)sYearAndMonth = "19" & sYear & "年" & sMonth & "月".Range.Cells(9).Range.Text = sYearAndMonth'确定性别isSexChar = Mid(idString, idLen - 2, 1)If isSexChar Mod 2 = 0 ThenisSex = "女"sLadyOrGentleman = "小姐"ElseisSex = "男"sLadyOrGentleman = "先生"End If.Range.Cells(7).Range.Text = isSex.Range.Cells(3).Range.Text = sLadyOrGentleman.Range.Cells(5).Range.Font.Color = wdColorBlack'如果是18位的身份证ElseIf idLen = 20 ThensYear = Mid(idString, 7, 4)sMonth = Mid(idString, 11, 2)sYearAndMonth = sYear & "年" & sMonth & "月".Range.Cells(9).Range.Text = sYearAndMonth'确定性别isSexChar = Mid(idString, idLen - 3, 1)If isSexChar Mod 2 = 0 ThenisSex = "女"sLadyOrGentleman = "小姐"ElseisSex = "男"sLadyOrGentleman = "先生"End If.Range.Cells(7).Range.Text = isSex.Range.Cells(3).Range.Text = sLadyOrGentleman.Range.Cells(5).Range.Font.Color = wdColorBlackElse.Range.Cells(5).Range.Font.Color = wdColorRed.Range.Cells(7).Range.Text = "".Range.Cells(3).Range.Text = "".Range.Cells(9).Range.Text = ""End IfEnd WithEnd Sub简要解析:表格的单元格的text属性包括形如“段落标记”及“单元格符”,对应的分别是Chr(13)与Chr(7),所从15位的身份证号码使用了“If idLen = 17 Then”,18位也是同样的道理。
使用javascript实现身份证校验与信息提取
使⽤javascript实现⾝份证校验与信息提取我们先了解⼀下⾝份证是怎么校验的:将前⾯的⾝份证号码17位数分别乘以不同的系数,将这17位数字和系数相乘的结果相加,然后除以11求余,根据最后的余数对应校验码,判断⾝份证是否符合要求。
现在我们开始写代码<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body><p>⾝份证号:<input type='text' id='idCard'/></p><P>出⽣⽇期:<input type='text' readonly id='age'/></P><P>性 别:<input type='radio' disabled name='sex' id='man'>男<input type='radio' name='sex' disabled id='woman'>⼥</P><P>籍 贯:<input type='text' readonly id='dess'></P><button type='button' id='btnSub'>确定</button><script src='js/jquery-1.11.3.min.js'></script><script>$("#btnSub").click(function(){var idCard = $("#idCard").val();//根据⾝份证不同的位置,截取相对应的数据var sex = idCard.substring(16,17);var num = idCard.substring(17,18);var year = idCard.substring(6,10);var month = idCard.substring(10,12);var day = idCard.substring(12,14);var age = year+"-"+month+"-"+day;var date = new Date(age);var sum = 0;var arr = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,0];var arr2 = [1,0,'X',9,8,7,6,5,4,3,2];//判断⾝份证是否为空,或者长度有没有达到要求(这⾥规定⾝份证18位)if(!(idCard && /^[\d]{18}$/.test(idCard))){alert("⾝份证输⼊格式不对!")return false;}else{//计算第18位数是否符合要求for(var i=0;i<18;i++){sum += idCard.substring(i,i+1)*arr[i]}if(num== arr2[sum%11] || num===arr2[sum%11]){ $("#age").val(age)if(sex%2 == 1){$("#man").prop("checked","true")}else{$("#woman").prop("checked","true")}$.ajax({url:"IdCardServlet",type:"get",data:{idCard:idCard},success:function(data){$.each(data,function(index,obj){$("#dess").val(obj.detail);})}})}else{alert("⾝份证输⼊格式不对!")$("#man").removeAttr("checked")$("#woman").removeAttr("checked")$("#dess").val("");$("#age").val("");return false;}}})</script></body></html>效果图:如果需要显⽰籍贯的话,需要那对应的数字去数据库中查找显⽰。
身份证号码前6位查询表
身份证号码前6位查询表作为一个学者,可能有时我们需要查询一些人的相关信息,其中身份证号码就是一项重要的信息,因为身份证号码的前6位包含了身份证的户籍地信息,它也可以作为我们进行一些社会调查的基础数据,因此学习身份证号码前6位的查询表就显得尤为重要了。
首先,我们需要了解一下什么是身份证号码的前6位。
身份证号码是由18位数字加字母组成的,第1至6位表示地址码,代表了从该地址码所在的行政区域出生的公民。
地址码是由公安部门统一编制,不同的地址码代表了不同的省、自治区、直辖市、特别行政区、地区、自治州等行政区划单位。
然后,我们需要学习如何查询身份证号码前6位的信息。
为了方便查询,国家统计局和国务院人口普查办公室联合发布了全国行政区划、城乡划分代码编制规则,该编制规则包含了全国31个省、自治区、直辖市、特别行政区及其下属的334个地级行政区划、2822个市辖区、县级行政区划的名称、代码及其城乡分类代码。
我们可以通过该编制规则来进行查询。
具体的查询方法如下:1. 首先在互联网上找到全国行政区划、城乡划分代码编制规则的最新版本,现在已经发布了2019年版的编制规则,我们可以下载查看。
2. 打开编制规则后,我们需要找到自己所在的省份,然后再在省份所在的章节中找到自己所在的城市或地区,以此类推,最终找到我们所感兴趣的地址码所在的行政区划单位。
3. 通过查询,我们就可以了解到自己所感兴趣的地址码所在的行政区划单位的名称、代码及其城乡分类代码,进一步了解该地区的基本情况和经济发展水平等相关信息。
需要注意的是,我们在进行身份证号码查询时,不能进行非法操作和违反他人隐私的行为,否则将可能引发法律后果。
综上所述,身份证号码前6位查询表是一项非常有用的工具,它可以帮助我们更深入地了解周围的社会环境和人口状况,因此我们需要充分利用这一工具并遵守相关的法律规定,为社会的和谐发展贡献自己的力量。