js验证身份验证示例

复制代码代码如下所示:
功能checkidcard(身份证){
var错误=新数组(
通过验证
身份证号码不正确!
身份证号码的日期超出范围或包含非法字符!
身份证号码检查错误!
身份证区域是非法的!
);
var区域= { 11:12:北京
Var IDcard,Y,九英马;
无功功率;
无功idcard_array =新的数组();
idcard_array = idcard.split();
检查区域
如果(区{ parseInt(idcard.substr(0,2))} = = null)返回错误{ 4 };
ID号、数字和测试格式
开关(身份证。长度){
案例15:
如果((parseInt(idcard.substr(6,2))+ 1900(0)% 4 = = | |(parseInt(idcard.substr(6,2))+ 1900(0)% 100 = = parseInt(idcard.substr(6,2))+ 1900)% 4 = = 0)){
EREG = / ^ { } { }到{ 5 } { 0-9 0-9 } { 2 }((01 | 03 | 05 | 07 08 10 12 | | |)(0 { } { } { 1-9 | 1-2 0-9 } { } 3 | 0-1)|(04 | 06 | 09 | 11)(0 { } { } { 1-9 | 1-2 0-9 } | 30)02(0 | { } { } { 1-9 | 1-2 0-9 }){ 0-9 } { 3 } $ / / /);出生日期的合法性检验
{人}
EREG = / ^ { } { }到{ 5 } { 0-9 0-9 } { 2 }((01 | 03 | 05 | 07 08 10 12 | | |)(0 { } { } { 1-9 | 1-2 0-9 } { } 3 | 0-1)|(04 | 06 | 09 | 11)(0 { } { } { 1-9 | 1-2 0-9 } | 30)| 02(0 { 1 } { } | 1-9 0-9 | 2 { 0-8 }){ 0-9 } { 3 } $ / / /);出生日期的合法性检验
}
如果(ereg.test(身份证))返回错误{ 0 };
其他返回错误{ 2 };
打破;
案例18:
18位标识号检测
检查出生日期的合法性
闰月日期: / /((01 | 03 | 05 | 07 08 10 12 | | |)(0 { } { } { 1-9 | 1-2 0-9 } { } 3 | 0-1)|(04 | 06 | 09 | 11)(0 | { } } { 1-9 1-2 | 0-9 } { 30)02(0 | { } { } { 1-9 | 1-2 0-9 }))
四月: / /平年((01 | 03 | 05 | 07 08 10 12 | | |)(0 { } { } { 1-9 | 1-2 0-9 } { } 3 | 0-1)|(04 | 06 | 09 | 11)(0 | { } } { 1-9 1-2 | 0-9 } { 30)| 02(0 { 1 } { } | 1-9 0-9 | 0-8 2 { }))
如果(parseInt(idcard.substr(6,4))% 4 = = 0 | |(parseInt(idcard.substr(6,4))% 100 = = 0 parseInt(idcard.substr(6,4)){ % 4 = = 0))
EREG = / ^ { } { } 1-9 0-9 { 5 } 19 { 0-9 } { 2 }((01 | 03 | 05 | 07 08 10 12 | | |)(0 { } { } { 1-9 | 1-2 0-9 } { } 3 | 0-1)|(04 | | | 06 09 11(0){ } { } { 1-9 | 1-2 0-9 } | 30)02(0 | { } { } { 1-9 | 1-2 0-9 }){ 0-9 } { 3 } { 0-9xx } $ / / /);正则表达式闰年出生日期的合法性
{人}
EREG = / ^ { } { } 1-9 0-9 { 5 } 19 { 0-9 } { 2 }((01 | 03 | 05 | 07 08 10 12 | | |)(0 { } { } { 1-9 | 1-2 0-9 } { } 3 | 0-1)|(04 | | | 06 09 11(0){ } { } { 1-9 | 1-2 0-9 } | 30)| 02(0 { 1 } { } | 1-9 0-9 | 2 { 0-8 }){ 0-9 } { 3 } { 0-9xx } $ / / /);正则表达式年出生日期的合法性
}
如果(ereg.test(身份证)){ / /合法性测试出生日期
校验数字计算
S =(parseInt(idcard_array { 0 })+ parseInt(idcard_array { 10 }))* 7
+(parseInt(idcard_array { 1 })+ parseInt(idcard_array { 11 }))* 9
+(parseInt(idcard_array { 2 })+ parseInt(idcard_array { 12 }))* 10
+(parseInt(idcard_array { 3 })+ parseInt(idcard_array { 13 }))* 5
+(parseInt(idcard_array { 4 })+ parseInt(idcard_array { 14 }))* 8
+(parseInt(idcard_array { 5 })+ parseInt(idcard_array { 15 }))* 4
+(parseInt(idcard_array { 6 })+ parseInt(idcard_array { 16 }))* 2
+ parseInt(idcard_array { 7 })* 1
+ parseInt(idcard_array { 8 })* 6
+ parseInt(idcard_array { 9 })* 3;
y = % 11;
m;
九英马=10x98765432 ;
M = jym.substr(Y,1); / /确定校验位
如果(M = = idcard_array { 17 })返回错误{ 0 }; / /身份证校验检测
其他返回错误{ 3 };
}
其他返回错误{ 2 };
打破;
违约:
返回错误{ 1 };
打破;
}
}