注册页面需要对
用户更严格的要求,需要验证身份证的合法性,通过本
系统的
功能严格,从而过滤掉大量的水。
很多时候,我们使用一组正则表达式来确定身份证是否有效。你对身份证的构成了解多少让我们谈谈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号的含义,这是非常容易的。