• JavaScript身份证号码验证支持新的带x身份证


     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 }
  • 相关阅读:
    [C#][控件]WebBrowser 使用范例
    [java]经验集
    [html][easyui]DataGrid 绑定
    [转]jQuery 读取 xml
    [转][html]大文件下载
    [转][javascript]判断传入参数
    [html][javascript] Cookie
    [bat]批处理删默认共享和清理垃圾
    [转]JavaScript RegExp 对象参考手册
    5个编程问题(1小时解决)
  • 原文地址:https://www.cnblogs.com/cxy521/p/1048626.html
Copyright © 2020-2023  润新知