js验证真实姓名和身份证号码的匹配。

js验证真实姓名和身份证号码的匹配。
在最近的项目中,我们需要调用实名认证接口。实名认证接口价格比短信高不了几分钱。因此严格要求实名认证的条件。因此,我们需要使用js来验证真实姓名和js来验证ID号。

开始做生意

js验证真实姓名和比赛的Unicode字符,和中国人的名字通常是2-4,如此重复{二}倍。

1.js验证的真实姓名
无功regname = / ^ { 用户乌发} {,} $ /;
如果(!regname.test(名字)){
警报(真实名字是错的);
返回false;
}

js验证中国的身份证号码,身份证号码,第一代身份证号码是15位数,二代身份证是18位的,也许除了数量可能be'x'or'x '最后一位检查,那么有四种可能性:A.15数字b.18数字17位第十八is'x ',d.17位数,第十八is'x

2.js认证ID号
var = regidno /(^ D { } $)|(^ D { } $)|(^ D { }( D | X | x)/美元);
如果(!regidno.test(识别号)){
警报(身份证号码是错误的);
返回false;
}
ps:15位和18位ID JS验证示例

身份证号码的结构与表示

1,数字的结构

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

2。地址码

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

3,出生日期代码

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

4。序列码

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

5。校验码

(1)十七位数字本体的加权和公式

s=(ai),i = 0,…,16,第一个前17位数字的右边

AI:表示i位置上ID号的数字值。

Wi:表示i位置上的权重因子。

79105842163 79105842

(2)计算模型

y = mod(s,11)

(3)通过模式获得相应的校验码。

y:0 12345678910

检查码:10×98765432

也就是说,如果余数为1,最后校验位p应该是相应的0。

15位数:

a、b、b、c、y、m、d、d、d、d、d、d

18位数:

甲、乙、丙、丙、乙、钇

两。地址码

ID 6数字代码行政区划(简称数字代码(GB / T 2260-2007),参考中华人民共和国行政代码):数字编码的分析建立的原理和结构,它采用三层六级代码结构,分别根据中国各省的水平(自治区、直辖市在特别行政市(区)、地区、州、盟)、县(自治县、市、旗、旗、市、自治区,SAR)。
(1)第一、第二位数:全省编码,代表省、自治区、直辖市和特别行政区。

省、直辖市代码表:{ 11:北京
(2)第三、第四位数:省级城市(县)代码,是指市辖区、自治州、直辖市、县的直辖市和省(自治区)和县级行政区划汇总表。

01~20, 51~70称市、01市市称,后称02直辖市辖县以内;

- 21~50代表区域、自治州和联盟;

- 90是中央政府对省(自治区)行政区划的汇总代码。
(3)第五、第六位数:地级县(市)代码,指示县、自治县、县市、旗、自治旗、市辖区、林区、经济特区。

01~20是指市、区、自治州、直辖市、自治州、县的县级市,一般分为01个县。

- 21~80代表县、自治县、旗、自治旗、林区和辖区。

- 81~99代表省(区)级县级市。

三。其他

15身份证号码:

第七,第八出生年(两位数,最近两年)。

第九,第十是出生月份,

第十一、第十二表示出生日期,

第十三,第十四位是序列码,这是一个随机数。

第十五个代表性,奇数是男性,偶数是女性。

18身份证号码:

第七、第八、第九和10出生(四位数)。

第十一,第十二是出生月份,

第十三、第十四表示出生日期,

第十五位、第十六位是序列码,

第十七个代表性,奇数是男性,偶数是女性。

最后一个是结帐。

四,js代码实例
无功idcardnoutil = { {
*省、直辖市代码表
ProvinceAndCitys: {: Beijing
上海
广西
新疆
每个权重因子
权限:{
检查码*
ParityBit:{
性别/ **
性别:{男性:男性
检查地址码*
CheckAddressCode:功能(addresscode){
VAR检查= / ^ { - } D { } $ /测试(addresscode);
如果(!检查)返回false;
如果(idcardnoutil。provinceandcitys { parseInt(addresscode.substring(,))}){
返回true;
其他{ }
返回false;
}
},
检查日期代码
CheckBirthDayCode:功能(birdaycode){
VAR检查= / ^ { - } D { }(|(将)(会)()(会)|({ - } { - })|(将))$ /测试(birdaycode);
如果(!检查)返回false;
VaR yyyy = parseInt(birdaycode.substring(,),);
VaR毫米= parseInt(birdaycode.substring(,),);
VaR(birdaycode.substring DD = parseInt(),);
VaR XDATA =新的日期(年、MM、DD);
如果(xdata >新日期()){
返回false;生日不大于当前日期
} else if((xdata。返回完整年份)=(年)(xdata。获得当前的月份)(MM = -)(xdata。getdate)(= = DD){)
返回true;
其他{ }
返回false;
}
},
计算校验和代码*
getparitybit:功能(idcardno){
var id = idcardno.substring(,);
加权
无功功率=;
对于(var i;i;<;++){
功率= parseInt(id.charat(我),parseInt(idcardnoutil。权力{我}))*;
}
模数为
var mod =电源%;
返回idcardnoutil paritybit {模型};
},
验证校验和代码*
checkparitybit:功能(idcardno){
无功paritybit = idcardno.charat()ToUpperCase();
如果(idcardnoutil.getparitybit(idcardno)= = paritybit){
返回true;
其他{ }
返回false;
}
},
支票号码或身份证号码。
checkidcardno:功能(idcardno){
基本奇偶校验位和身份证号码
VAR检查= / ^ D { } |( D { }( D | X | x))$ /测试(idcardno);
如果(!检查)返回false;
确定位或位的长度
如果(idcardno。长度= =){
返回idcardnoutil.checkidcardno(idcardno);
} else if(idcardno。长度= =){
返回idcardnoutil.checkidcardno(idcardno);
其他{ }
返回false;
}
},
检查身份证号码
checkidcardno:功能(idcardno){
基本校验位
VAR检查= / ^ { - } D { }(|(将)(会)()(会)|({ - } { - })|(将)) D { } $ /测试(idcardno);
如果(!检查)返回false;
检查地址码
无功addresscode = idcardno.substring(,);
检查组idcardnoutil.checkaddresscode(addresscode);
如果(!检查)返回false;
无功birdaycode =+ idcardno.substring(,);
检查日期代码
返回idcardnoutil.checkbirthdaycode(birdaycode);
},
检查身份证号码
checkidcardno:功能(idcardno){
基本格式检查数字ID号
VAR检查= / ^ { - } D { } { - } D { }(|(将)(会)()(会)|({ - } { - })|(将){ }(D) D | X | x)$ /测试(idcardno);
如果(!检查)返回false;
检查地址码
无功addresscode = idcardno.substring(,);
检查组idcardnoutil.checkaddresscode(addresscode);
如果(!检查)返回false;
检查日期代码
无功birdaycode = idcardno.substring(,);
检查组idcardnoutil.checkbirthdaycode(birdaycode);
如果(!检查)返回false;
检查/验证码
返回idcardnoutil.checkparitybit(idcardno);
},
formatedatecn:功能(天){
VaR yyyy = day.substring(,);
VaR毫米= day.substring(,);
var = day.substring(DD);
收益+年+ + - + - MM DD;
},
获取信息
GetIdCardInfo:功能(idcardno){
无功idcardinfo = { {
性别:
生日: / /出生日期(yyyy-mm-dd)
};
如果(idcardno。长度= =){
无功一=+ idcardno.substring(,);
idcardinfo生日= idcardnoutil.formatedatecn(一天);
如果(parseInt((idcardno。charAt)){ % = =)
idcardinfo性别= idcardnoutil.genders.female;
其他{ }
idcardinfo性别= idcardnoutil.genders.male;
}
} else if(idcardno。长度= =){
一天,idcardno.substring VaR(,);
idcardinfo生日= idcardnoutil.formatedatecn(一天);
如果(parseInt((idcardno。charAt)){ % = =)
idcardinfo性别= idcardnoutil.genders.female;
其他{ }
idcardinfo性别= idcardnoutil.genders.male;
}
}
返回idcardinfo;
},
A *。
GetId:功能(idcardno){
如果(idcardno。长度= =){
返回idcardno;
} else if(idcardno。长度= =){
返回idcardno.substring(,)+ idcardno.substring(,);
其他{ }
返回null;
}
},
A *。
GetId:功能(idcardno){
如果(idcardno。长度= =){
var id = idcardno.substring(,)++ idcardno.substring();
无功paritybit = idcardnoutil.getparitybit(ID);
返回ID + paritybit;
} else if(idcardno。长度= =){
返回idcardno;
其他{ }
返回null;
}
}
};
标识号验证
jquery.validator.addmethod(idcardno
返回this.optional(元)idcardnoutil.checkidcardno(价值)| |;
请指定有效},ID号。);
获取身份证信息
无功idcardinfo = idcardnoutil.getidcardinfo(idcardno);
警报(idcardinfo.gender + idcardinfo.birthday + | );
注意:输入并判断同一张身份证是否具有相同的身份证。
(1)如果输入15位身份证,首先要查明是否存在15位ID。如果它不存在,它也需要把15张身份证变成18张身份证。如果它不存在,它将能够进入系统
(2)如果输入18位身份证,首先要查明是否存在18位ID。如果它不存在,它也需要把18张身份证变成15张身份证。如果它不存在,它将能够进入系统。
如果找到对应的15位id,则需要将15位更新为18位。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部