//--身份证号码验证-支持新的带x身份证
function isIdCardNo(num) 
{
    var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
    var error;
    var varArray = new Array();
    var intValue;
    var lngProduct = 0;
    var intCheckDigit;
    var intStrLen = num.length;
    var idNumber = num;    
    // initialize
    if ((intStrLen != 15) && (intStrLen != 18)) {
        //error = "输入身份证号码长度不对!";
        //alert(error);
        //frmAddUser.txtIDCard.focus();
        return false;
    }    
    // check and set value
    for(i=0;i<intStrLen;i++) {
        varArray[i] = idNumber.charAt(i);
        if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
            //error = "错误的身份证号码!.";
            //alert(error);
            //frmAddUser.txtIDCard.focus();
            return false;
        } else if (i < 17) {
            varArray[i] = varArray[i]*factorArr[i];
        }
    }
    if (intStrLen == 18) {
        //check date
        var date8 = idNumber.substring(6,14);
        if (checkDate(date8) == false) {
            //error = "身份证中日期信息不正确!.";
            //alert(error);
            return false;
        }        
        // calculate the sum of the products
        for(i=0;i<17;i++) {
            lngProduct = lngProduct + varArray[i];
        }        
        // calculate the check digit
        intCheckDigit = 12 - lngProduct % 11;
        switch (intCheckDigit) {
            case 10:
                intCheckDigit = 'X';
                break;
            case 11:
                intCheckDigit = 0;
                break;
            case 12:
                intCheckDigit = 1;
                break;
        }        
        // check last digit
        if (varArray[17].toUpperCase() != intCheckDigit) {
            //error = "身份证效验位错误!...正确为: " + intCheckDigit + ".";
            //alert(error);
            return false;
        }
    } 
    else{        //length is 15
        //check date
        var date6 = idNumber.substring(6,12);
        if (checkDate(date6) == false) {
            //alert("身份证日期信息有误!.");
            return false;
        }
    }
    //alert ("Correct.");
    return true;
}

身份证号码验证-支持新的带x身份证相关推荐

  1. javascript身份证号码验证函数支持带x

    //--身份证号码验证-支持新的带x身份证 function isIdCardNo(num)  {     var factorArr = new Array(7,9,10,5,8,4,2,1,6,3 ...

  2. 新旧身份证合法性验证及相互转换算法(三):Java身份证号码验证及将15位转换18位

    package test; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 身份证号码验证 * */ pub ...

  3. 中国身份证号码验证,支持15,18位,可验证成功90%的身份证号

    using System;/// <summary> /// Summary description for IDCardValid /// </summary> public ...

  4. 身份证号码验证验证 js_验证我的身份。 如果你可以的话…

    身份证号码验证验证 js I frequently hear questions like "How to implement authentication in an Android ap ...

  5. 正则实现二代身份证号码验证详解

    Start 开发过程中,常常需要对一些输入信息进行有效性验证,使用正则表达式进行校验是最简单.效率最高的方式了,下面就来看看15/18位身份证号码验证的正则表达式吧. 一: IdCodeValid:f ...

  6. java对台湾同胞身份证号码验证

    package com.yt.eos.common.enumclass;import org.apache.commons.lang3.StringUtils;/*** 台湾同胞身份证号码验证* @a ...

  7. Android身份证号码验证

    最近用到身份证号码验证,在网上看了些资料,写了些方法记录下: 文章迁至:Java/Android通用身份证号验证 public class IDCardValidate {public static ...

  8. MySQL正则表达式判断身份证_15/18位身份证号码验证的正则表达式总结(详细版)...

    前言 开发过程中,常常需要对一些输入信息进行有效性验证,使用正则表达式进行校验是最简单.效率最高的方式了,下面就来看看15/18位身份证号码验证的正则表达式吧. 介绍 xxxxxx yyyy MM d ...

  9. python正则表达式 身份证_15/18位身份证号码验证的正则表达式总结(详细版)

    前言 开发过程中,常常需要对一些输入信息进行有效性验证,使用正则表达式进行校验是最简单.效率最高的方式了,下面就来看看15/18位身份证号码验证的正则表达式吧. 介绍 xxxxxx yyyy MM d ...

最新文章

  1. 谷歌提出新分类损失函数:将噪声对训练结果影响降到最低
  2. 安装高可用性虚拟机,livemigration系列之九
  3. 【数据结构-排序】5.九种排序设计分析
  4. 常用 BUG 解决方法
  5. Form表单标签的Enctype属性的编码格类型
  6. 关于vue中Cannot read property 'length' of undefined 导致:数据不显示问题【自己经验参考】
  7. Rancher助力美国农业部的容器实践之路
  8. 【HTML+CSS网页设计与布局 从入门到精通】第11章-CSS
  9. MindManager中读图工具的使用
  10. VUE2.0 elemenui-ui 2.0.X 封装 省市区三级
  11. .htaccess 语法以及应用
  12. linux mc 命令,linux的mc命令是什么有什么用
  13. 黑群晖一键生成视频缩略图
  14. 艾默生变频器报警PHP,艾默生变频器故障代码
  15. 一篇经典的求职经历博客,值得深入研究和学习
  16. csgo删除服务器地图在哪个文件夹,CSGO de_cache地图
  17. vs2015——拖动选项卡导致软件崩溃重启
  18. 达梦安装与基本使用【进阶】
  19. 联想用u盘重装系统步骤_联想u盘重装win10系统详细图文教程
  20. NYOJ----366D的小L

热门文章

  1. pythontkinter真实的例子_python小实例——tkinter实战(计算器)
  2. pr 文件结构不一致_建筑工程合同与招投标文件不一致,工程结款应该以哪份文件为主?...
  3. 常用python工具类代码总结
  4. 优达学城《DeepLearning》2-4:自编码器(无监督学习算法)
  5. 深度学习--TensorFlow(7)拟合(过拟合处理)(数据增强、提前停止训练、dropout、正则化、标签平滑)
  6. 深度学习--TensorFlow(4)BP神经网络(损失函数、梯度下降、常用激活函数、梯度消失梯度爆炸)
  7. 基于相机和低分辨率激光雷达的三维车辆检测
  8. Image deformation of AffineSimilarityRigidProjective
  9. 关于 Caused by: java.lang.NoClassDefFoundError: com/alipay/api/AlipayApiException 解决办法
  10. CentOS需要安装的JAVA环境的相关软件