JS身份证号码验证函数 支持带x的号码

原创 2007年09月27日 14:30:00
<script type="text/javascript">
alert(isIdCardNo("440781197007220512"));
//--身份证号码验证-支持新的带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;
}

function checkDate(date)
{
    return true;
}
</script>
 
版权声明:本文为博主原创文章,未经博主允许不得转载。

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

出处:http://www.jb51.net/article/15444.htm alert(isIdCardNo("440781197007220512")); //--身份证号码验...
  • lengyue1084
  • lengyue1084
  • 2013年09月23日 10:44
  • 1056

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

//--身份证号码验证-支持新的带x身份证function isIdCardNo(num) {    var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,...
  • 21aspnet
  • 21aspnet
  • 2007年03月20日 00:09
  • 2232

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

//--身份证号码验证-支持新的带x身份证function isIdCardNo(num) {    var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,...
  • luobailian
  • luobailian
  • 2010年07月12日 10:17
  • 381

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

//--身份证号码验证-支持新的带x身份证function isIdCardNo(num) {    var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,...
  • 21aspnet
  • 21aspnet
  • 2007年03月23日 22:34
  • 4207

jquery validation验证身份证号、护照、电话号码、email

validata.htmhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/1999/xhtml">无...
  • wyyfwm
  • wyyfwm
  • 2011年07月22日 12:08
  • 12106

javascript身份证号码验证函数支持带x类型的身份证

 //--身份证号码验证-支持新的带x身份证function isIdCardNo(num) {    var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7...
  • yytt123622
  • yytt123622
  • 2008年08月27日 11:38
  • 343

一个验证身份证号码的javascript函数

//身份证验证函数 function checkIdcard(idcard){ var Errors=new Array( "yes", "身份证号码位数不对!", "身份证号码出生日期超出范围或含有...
  • JOHNCOOLS
  • JOHNCOOLS
  • 2006年09月06日 17:00
  • 1699

js 验证手机号码 身份证号 邮箱 正则表达式

var phone = $.trim($("#phoneid").val()); var partten = /^1[3-9]\d{9}$/ if(!partten.test(phone)){    ...
  • w1158384189
  • w1158384189
  • 2015年01月27日 10:22
  • 724

简单的关于身份证(15位或者18位)合法性验证

简单的关于身份证(15位或者18位)合法性验证
  • caolipeng_918
  • caolipeng_918
  • 2015年01月09日 15:51
  • 1631

使用Excel的函数批量判断身份证号码是否有效

使用Excel的函数批量判断身份证号码是否有效
  • tongyuehong
  • tongyuehong
  • 2014年12月27日 22:49
  • 3353
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JS身份证号码验证函数 支持带x的号码
举报原因:
原因补充:

(最多只允许输入30个字)