zoukankan      html  css  js  c++  java
  • 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)
    Android--Otto事件总线 -- 组件之间通讯框架使用 --模式解析
    递归 —— 二分查找法 —— 归并排序
    自己做悬浮拖拽按钮依赖
    RePlugin 插件化-内置加载
    Android图片处理--缩放
    数据结构与算法---常用三大排序算法
    Android图片处理--全景查看效果
  • 原文地址:https://www.cnblogs.com/cxy521/p/1048626.html
Copyright © 2011-2022 走看看