如何使用Javascript正则表达式验证ID号的合法性

如何使用Javascript正则表达式验证ID号的合法性
注册页面需要对用户更严格的要求,需要验证身份证的合法性,通过本系统功能严格,从而过滤掉大量的水。

很多时候,我们使用一组正则表达式来确定身份证是否有效。你对身份证的构成了解多少让我们谈谈ID号中包含了多少信息:

1,数字的结构

公民身份号码是一种特征组合码,它由十七位数字本体和一位校验码组成,从左到右依次为六位地址码、八位数字码、三位序列码和一位校验码。

2,地址码(前六位)

该县行政区划代码(市、旗、区)的编码对象常住户口所在地按GB / t2260的规定执行

3,出生日期(第七至十四)

年、月和日的编码对象的诞生是根据GB / t7408规则执行和代码不是一年之间,隔月,日和代码。

4,序列码(第十五到十七位)

表明在同一个月内分配给男性的奇数分配给男性,甚至女性。

5。校验码(第十八位数)

作为尾号的校验码,按统一的公式的数量单位编制的,如果人的尾号是0 - 9,没有X,但如果尾号是10,那么你必须用X代替,因为如果用10做尾号,那么这个人身份证19位。X是10罗马的号码,取代10 x,可以保证公民的身份证是在符合国家标准。

在知道ID号结构的每个部分的含义之后,我们开始进入主题:

1。确定一个民族地区的目标

无功容量= { 11:12:北京

2、正则表达式判断
功能iscardid(SID){
var ISUM = 0;
var;
如果(! / ^ D { 17 }( D | x)$ / i.test(SID))返回或输入身份证格式错误的长度;
SID = sid.replace( / /我X美元,);
如果(一{ parseInt(sid.substr(0,2))} = = null)返回你的身份证是违法的;
生日= sid.substr(6,4)+-+数字(sid.substr(10,2))+-+数字(sid.substr(12,2));
var a新的日期(sbirthday.replace( / / g, / ));
如果(生日!=(d.getfullyear()+-+(d.getmonth()+ 1)+-+ d.getdate()))回归的身份证上的出生日期是违法的;
对于(var i = 17;我> = 0;我ISUM(数学。战俘)=(2,i)% 11)* parseInt(sid.charat(17 -),11);
如果(ISUM % 11!= 1)返回您的输入ID号是非法的;
/ /城市{ parseInt(sid.substr(0,2)} +)
返回true;
}

以上内容分析是本文的全部内容。实现方法非常简单。它主要理解每个ID号的含义,这是非常容易的。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部