现在的位置: 首页 > 综合 > 正文

js 校验是否合法的中国身份证

2014年07月17日 ⁄ 综合 ⁄ 共 1383字 ⁄ 字号 评论关闭
*验证是否有效的中国身份证号码*/
     function isValidChinaIDCard(sNo)
       {
           sNo = sNo.toString();
           if (sNo.length==18)
           {
	            var a,b,c;
	            if (!isInteger(sNo.substr(0,17)))
	            {
	                return false;
	            }
       		
	            a=parseInt(sNo.substr(0,1))*7+parseInt(sNo.substr(1,1))*9+parseInt(sNo.substr(2,1))*10;
	            a=a+parseInt(sNo.substr(3,1))*5+parseInt(sNo.substr(4,1))*8+parseInt(sNo.substr(5,1))*4;
	            a=a+parseInt(sNo.substr(6,1))*2+parseInt(sNo.substr(7,1))*1+parseInt(sNo.substr(8,1))*6;	
	            a=a+parseInt(sNo.substr(9,1))*3+parseInt(sNo.substr(10,1))*7+parseInt(sNo.substr(11,1))*9;	
       a=a+parseInt(sNo.substr(12,1))*10+parseInt(sNo.substr(13,1))*5+parseInt(sNo.substr(14,1))*8;	
       a=a+parseInt(sNo.substr(15,1))*4+parseInt(sNo.substr(16,1))*2;
       b=a%11;
     		
       if (b==2)
       {
           c=sNo.substr(17,1).toUpperCase();
       }
       else
       {
           c=parseInt(sNo.substr(17,1));
       }
     		
       switch(b)
       {
           case 0: if ( c!=1 ) {return false;}break;
           case 1: if ( c!=0 ) {return false;}break;
           case 2: if ( c!="X") {return false;}break;
           case 3: if ( c!=9 ) {return false;}break;
           case 4: if ( c!=8 ) {return false;}break;
           case 5: if ( c!=7 ) {return false;}break;
           case 6: if ( c!=6 ) {return false;}break;
           case 7: if ( c!=5 ) {return false;}break;
           case 8: if ( c!=4 ) {return false;}break;
           case 9: if ( c!=3 ) {return false;}break;
           case 10: if ( c!=2 ){return false};
       }
      }
      else
      {
       if (!isInteger(sNo)) {return false;}	
      }
     		
      switch(sNo.length){
       case 15: if (isValidDate(sNo.substr(6,2),sNo.substr(8,2),sNo.substr(10,2))) {return true;}
       case 18: if (isValidDate(sNo.substr(6,4),sNo.substr(10,2),sNo.substr(12,2))) {return true;}
       }
      return false;
     }

此代码为项目中用到的代码,记下来以防以后需要.

抱歉!评论已关闭.