js实现两代身份证号码验证

js实现两代身份证号码验证
废话更少,代码是直接的,注释中的解析是清晰的,这里不是BB。

复制代码代码如下所示:

*

根据中华人民共和国国家标准GB 11643-1999 公民的有关规定的身份证号码,公民身份号码是组合码,由十七位数字本体码和一位数字校验码。从左到右的顺序是六位地址码,八位数字的日期码,三位顺序码和一位校验码。

地址码表示编码对象永久居住地的县(市、旗、区)的行政区划代码。

日期代码表示编码对象的年份、月份和日,其中以四位数字表示年份,并且不分开年份、月份和日期。

序列码表示在同一地址、同一地址码中的同一年、月和日出生的人的序列号。奇数序列码分为男性,偶数码给妇女。

校验码是根据前十七位数字代码,根据ISO 7064: 1983.mod 11-2校验码计算的测试代码。
计算出生日期的方法

身份证代码首先扩展出生到4年,和简单的一个是19或18的增长,其中包括所有那些出生的1800-1999年。

出生后18年当然不是麻烦,但出生前1800,然后什么不应该ID号的东东,**,汗…

下面是正则表达式:

1800-2099出生日期(18 | 19 | 20) D { 2 }(0 { } | 1-9 1 { 12 })(0 | 1-9 } { { 12 } D | 3 { 01 })

正则表达式的身份证/ ^ D { 6 }(18 | 19 | 20) D { 2 }(0 { } | 1-9 1 { 12 })(0 | 1-9 } { { 12 } D | 3 { 01 }) D { 3 }(三维| x)$ /我

位校验规则6位地址编码+ 6位日期+ 3位序号

位校验规则6位地址编码+ 8位日期+ 3位序列号+ 1位校验位
的校验规则公式:(AI T2*WI)(mod 11).........(1)

在公式(1)中:

表示从左边到左边的数字字符的数目,包括校验码。

ai表示i位置上的数字字符值;

WI显示了i位置上的加权因子,它的值是根据公式2=n-1(n-1)(mod 11)计算的。

我181716151413121110 87654321

无线79105842163 791058421
* /

身份证号码验证

支持15位和18位ID号

支持地址编码、出生日期、奇偶校验

功能identitycodevalid(代码){

var = 11:12:北京

var;

var =真的;

如果(代码| |!! / ^ D { 6 }(18 | 19 | 20) D { 2 }(0 { } | 1-9 1 { 12 })(0 | 1-9 } { { 12 } D | 3 { 01 }) D { 3 }( D | X)$ / i.test(代码)){

提示id号中的错误

传递= false;

}

否则如果(!市code.substr(0,2){ }){

提示地址编码错误;

传递= false;

}

别的{

18位ID卡需要验证结帐的最后一位。

如果(code.length = = 18){

代码= code.split('');

西格玛(AI)(国防部11)

/加权因子

var因子{ 7, 9, 10,5, 8, 4,2, 1, 6,3, 7, 9,10, 5。

检查

VaR平价= { 1, 0,x,9, 8, 7,6, 5, 4,3, 2 };

var总和= 0;

var = 0;

var = 0;

对于(var i = 0;i < 17;i + +)

{

ai =代码{ };

因子= i };

总和= AI *;

}

var =奇偶校验{和% 11 };

如果(奇偶校验{ % 11 }!=代码{ 17 }){

提示检查位错误;

传递= false;

}

}

}

如果(!传递警报(提示);

回传球;

}

var c = '130981199312253466;

VaR既= IdentityCodeValid(C);
你好吗这是很全面的。在因特网上搜索的第一张身份证号码验证码和其他验证码几乎不是一个维度。小伙伴需要直接拿走的是他们的使用。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部