idcard.js

来自「几个运用了DWR框架编写的AJAX代码,」· JavaScript 代码 · 共 194 行

JS
194
字号
var yyyy;var mm;var dd;var birthday;var sex;var IdCardErrorMsg='';function getYear(){    return yyyy;}function getMonth(){    return mm;}function getDate(){    return dd;}function getBirthday(){    return birthday;}function getSex(){    return sex;}function getAge(){    var mm=getMonth();    if (mm<10) mm=mm.substring(1,2);    // 此处不能信任用户电脑的时间,须从服务器上获取.    //var  date1=new  Date();//取得当前日期        var curFullYear = CurYear;    var curMonth = CurMonth;        return Math.floor((parseInt(curFullYear)*12+parseInt(curMonth)-parseInt(getYear())*12-parseInt(mm))/12);}//判断是否大龄,男50,女40function isBigAge(){    if (parseInt(getAge())>=40 && parseInt(getSex())==2)        return "1";    if (parseInt(getAge())>=50 && parseInt(getSex())==1)        return "1";    return "0";}//校验身份证号码function CheckIdCardValue(idCard){    var id=idCard;    var id_length=id.length;    if (id_length==0){        IdCardErrorMsg = "请输入身份证号码!";        return false;    }    if (id_length!=15 && id_length!=18){        IdCardErrorMsg ="身份证号长度应为15位或18位!";        return false;    }    if (id_length==15){        yyyy="19"+id.substring(6,8);        mm=id.substring(8,10);        dd=id.substring(10,12);        if (mm>12 || mm<=0){            IdCardErrorMsg =("输入身份证号,月份非法!");            return false;        }        if (dd>31 || dd<=0){            IdCardErrorMsg =("输入身份证号,日期非法!");            return false;        }        birthday=yyyy+ "-" +mm+ "-" +dd;        if ("13579".indexOf(id.substring(14,15))!=-1){            sex="1";        }else{            sex="2";        }    }else if (id_length==18){        if (id.indexOf("X") > 0 && id.indexOf("X")!=17 || id.indexOf("x")>0 && id.indexOf("x")!=17){            IdCardErrorMsg = ("身份证中\"X\"输入位置不正确!");            return false;        }        yyyy=id.substring(6,10);        if (yyyy>2200 || yyyy<1900){            IdCardErrorMsg =("输入身份证号,年度非法!");            return false;        }        mm=id.substring(10,12);        if (mm>12 || mm<=0){            IdCardErrorMsg = ("输入身份证号,月份非法!");            return false;        }        dd=id.substring(12,14);        if (dd>31 || dd<=0){            IdCardErrorMsg =("输入身份证号,日期非法!");            return false;        }        if (id.charAt(17)=="x" || id.charAt(17)=="X")        {            if ("x"!=GetVerifyBit(id) && "X"!=GetVerifyBit(id)){                IdCardErrorMsg = ("身份证校验错误,请检查最后一位!");                return false;            }        }else{            if (id.charAt(17)!=GetVerifyBit(id)){                IdCardErrorMsg =("身份证校验错误,请检查最后一位!");                return false;            }        }        birthday=id.substring(6,10) + "-" + id.substring(10,12) + "-" + id.substring(12,14);        if ("13579".indexOf(id.substring(16,17)) > -1){            sex="1";        }else{            sex="2";        }    }    return true;}//15位转18位中,计算校验位即最后一位function GetVerifyBit(id){    var result;    var nNum=eval(id.charAt(0)*7+id.charAt(1)*9+id.charAt(2)*10+id.charAt(3)*5+id.charAt(4)*8+id.charAt(5)*4+id.charAt(6)*2+id.charAt(7)*1+id.charAt(8)*6+id.charAt(9)*3+id.charAt(10)*7+id.charAt(11)*9+id.charAt(12)*10+id.charAt(13)*5+id.charAt(14)*8+id.charAt(15)*4+id.charAt(16)*2);    nNum=nNum%11;    switch (nNum) {       case 0 :          result="1";          break;       case 1 :          result="0";          break;       case 2 :          result="X";          break;       case 3 :          result="9";          break;       case 4 :          result="8";          break;       case 5 :          result="7";          break;       case 6 :          result="6";          break;       case 7 :          result="5";          break;       case 8 :          result="4";          break;       case 9 :          result="3";          break;       case 10 :          result="2";          break;    }    //document.write(result);    return result;}//15位转18位function Get18(idCard){	 if (CheckValue(idCard)){	  var id = idCard;	  var id18=id;	  if (id.length==0){	   	alert("请输入15位身份证号!");	    return false;	  }	  if (id.length==15){	   if (id.substring(6,8)>20){	    	id18=id.substring(0,6)+"19"+id.substring(6,15);	   }else{	    	id18=id.substring(0,6)+"20"+id.substring(6,15);	   }		   	id18=id18+GetVerifyBit(id18);	  }		  return id18;	 }else{	  return false;	 }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?