首页 | 新闻 | 网站建设 | 成功案例 | 服务项目 | 商业购买 | 编程技术 | 壁纸 | 休闲娱乐 | 下载专区 | 留言 | 论坛
 
您现在的位置:网站首页 > 编程技术 > JavaScript
JavaScript身份证号码验证(支持新的带x身份证 )
发布时间:2008-06-07  发布:奇景  关键字:身份证号码 验证  阅读次数:227  【字号
1 //--身份证号码验证-支持新的带x身份证
 2 function isIdCardNo(num) 
 3 {
 4     var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
 5     var error;
 6     var varArray = new Array();
 7     var intValue;
 8     var lngProduct = 0;
 9     var intCheckDigit;
10     var intStrLen = num.length;
11     var idNumber = num;    
12     // initialize
13     if ((intStrLen != 15&& (intStrLen != 18)) {
14         //error = "输入身份证号码长度不对!";
15         //alert(error);
16         //frmAddUser.txtIDCard.focus();
17         return false;
18     }    
19     // check and set value
20     for(i=0;i<intStrLen;i++) {
21         varArray[i] = idNumber.charAt(i);
22         if ((varArray[i] < '0' || varArray[i] > '9'&& (i != 17)) {
23             //error = "错误的身份证号码!.";
24             //alert(error);
25             //frmAddUser.txtIDCard.focus();
26             return false;
27         } else if (i < 17) {
28             varArray[i] = varArray[i]*factorArr[i];
29         }
30     }
31     if (intStrLen == 18) {
32         //check date
33         var date8 = idNumber.substring(6,14);
34         if (checkDate(date8) == false) {
35             //error = "身份证中日期信息不正确!.";
36             //alert(error);
37             return false;
38         }        
39         // calculate the sum of the products
40         for(i=0;i<17;i++) {
41             lngProduct = lngProduct + varArray[i];
42         }        
43         // calculate the check digit
44         intCheckDigit = 12 - lngProduct % 11;
45         switch (intCheckDigit) {
46             case 10:
47                 intCheckDigit = 'X';
48                 break;
49             case 11:
50                 intCheckDigit = 0;
51                 break;
52             case 12:
53                 intCheckDigit = 1;
54                 break;
55         }        
56         // check last digit
57         if (varArray[17].toUpperCase() != intCheckDigit) {
58             //error = "身份证效验位错误!正确为: " + intCheckDigit + ".";
59             //alert(error);
60             return false;
61         }
62     } 
63     else{        //length is 15
64         //check date
65         var date6 = idNumber.substring(6,12);
66         if (checkDate(date6) == false) {
67             //alert("身份证日期信息有误!.");
68             return false;
69         }
70     }
71     //alert ("Correct.");
72     return true;
73 }
【收藏此页】【复制网址】【打印】【关闭】返回上一级
 
相关评论
以下网友评论只代表个人观点,不代表本站立场
全选/不选  退出管理 页次:1/1  每页:5条  共0 条评论内容  

发表评论
 
呢 称: *
附加码: *请输入
E-Mail: [仅管理员可见]
电 话: [ 仅管理员可见]
内 容: *
       
 
 

 ≡相关主题≡
 
分类导航
本类最新
本周热门

  版权声明 | 关于本站 | 常见问题 | 联系我们 | 网站管理 | 页面顶端
CopyRight ? QScms.cn All Rights Reserved 福州帝威荣信息技术有限公司研发 业务联系:0591-87522535
互联网许可证:闽ICP备08002627号 QQ:812188106 邮箱:qscms@yahoo.cn
Power By QsCMS V3.0  执行时间 : 0.000 秒 页面装载: