身份证号码验证代码集合(js)

近日在写一个系统,找到些身份证验证代码,先放在这里,备忘!
//以下代码是我在论坛里面问问题的一部分,后来问题没有最终解决,我更改成另外一种方法了。
function  isChinaIDCard(StrNo)
{
    StrNo 
= JHshLTrim(StrNo);
    StrNo 
= JHshRTrim(StrNo);
    StrNo 
= StrNo.toString();
//    alert(StrNo.length)
    if (StrNo.length == 18)
    
{
        
var a, b, c;
        
if (!isInteger(StrNo.substr(017)))
        
{
            document.myform.CardNo.focus();
            
return false;
        }

        a 
= parseInt(StrNo.substr(01)) * 7+parseInt(StrNo.substr(11)) * 9 +parseInt(StrNo.substr(21)) * 10;
        a 
= a + parseInt(StrNo.substr(31)) * 5+parseInt(StrNo.substr(41)) * 8+parseInt(StrNo.substr(51)) * 4;
        a 
= a + parseInt(StrNo.substr(61)) * 2+parseInt(StrNo.substr(71)) * 1+parseInt(StrNo.substr(81)) * 6;
        a 
= a + parseInt(StrNo.substr(91)) * 3+parseInt(StrNo.substr(101)) * 7+parseInt(StrNo.substr(111)) * 9;
        a 
= a + parseInt(StrNo.substr(121)) * 10+parseInt(StrNo.substr(131)) * 5+parseInt(StrNo.substr(141)) * 8;
        a 
= a + parseInt(StrNo.substr(151)) * 4+parseInt(StrNo.substr(161)) * 2;
        b 
= a % 11;

        
if (b == 2)
        
//最后一位为校验位  
        {
            c 
= StrNo.substr(171).toUpperCase(); //转为大写X  
        }

        
else
        
{
            c 
= parseInt(StrNo.substr(171));
        }


        
switch (b)
        
{
            
case 0:
                
if (c != 1)
                
{
                    alert(
"身份证好号码校验位错:最后一位应该为:1");
                            document.myform.CardNo.focus();
                    
return false;
                }

                
break;
            
case 1:
                
if (c != 0)
                
{
                    alert(
"身份证好号码校验位错:最后一位应该为:0");
                            document.myform.CardNo.focus();
                    
return false;
                }

                
break;
            
case 2:
                
if (c != "X")
                
{
                    alert(
"身份证好号码校验位错:最后一位应该为:X");
                            document.myform.CardNo.focus();
                    
return false;
                }

                
break;
            
case 3:
                
if (c != 9)
                
{
                    alert(
"身份证好号码校验位错:最后一位应该为:9");
                            document.myform.CardNo.focus();
                    
return false;
                }

                
break;
            
case 4:
                
if (c != 8)
                
{
                    alert(
"身份证好号码校验位错:最后一位应该为:8");
                            document.myform.CardNo.focus();
                    
return false;
                }

                
break;
            
case 5:
                
if (c != 7)
                
{
                    alert(
"身份证好号码校验位错:最后一位应该为:7");
                            document.myform.CardNo.focus();
                    
return false;
                }

                
break;
            
case 6:
                
if (c != 6)
                
{
                    alert(
"身份证好号码校验位错:最后一位应该为:6");
                            document.myform.CardNo.focus();
                    
return false;
                }

                
break;
            
case 7:
                
if (c != 5)
                
{
                    alert(
"身份证好号码校验位错:最后一位应该为:5");
                            document.myform.CardNo.focus();
                    
return false;
                }

                
break;
            
case 8:
                
if (c != 4)
                
{
                    alert(
"身份证好号码校验位错:最后一位应该为:4");
                            document.myform.CardNo.focus();
                    
return false;
                }

                
break;
            
case 9:
                
if (c != 3)
                
{
                    alert(
"身份证好号码校验位错:最后一位应该为:3");
                            document.myform.CardNo.focus();
                    
return false;
                }

                
break;
            
case 10:
                
if (c != 2)
                
{
                    alert(
"身份证好号码校验位错:最后一位应该为:2");
                            document.myform.CardNo.focus();
                    
return false
                }

        }

    }

    
else if(StrNo.length==15)
    
//15位身份证号  
    {
        
if (!isInteger(StrNo))
        
{
            alert(
"身份证号码错误,前15位不能含有英文字母!");
                    document.myform.CardNo.focus();
            
return false;
        }

    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值