JavaScript社會安全號碼碼驗證-支援新的帶x身份證

來源:互聯網
上載者:User
 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 }
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.