js身份证验证怎么做

JavaScript012

js身份证验证怎么做,第1张

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="content-type" content="text/htmlcharset=gbk" />

</head>

<body>

<script type="text/javascript"> 

//--身份证号码验证-支持新的带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=0i<intStrLeni++) { 

        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=0i<17i++) { 

            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 

}  

function check()

{

 idnum = document.getElementById('idcard').value

 alert(isIdCardNo(idnum))

 

}

</script>

<form id="form1" name="form1" method="post" action="">

  <table align="center" width="60%" border="0">

    <tr>

      <td> </td>

      <td> </td>

      <td> </td>

    </tr>

    <tr>

      <td> </td>

      <td> </td>

      <td> </td>

    </tr>

    <tr>

      <td width="40%" valign="top"><div align="right">用户注册</div></td>

      <td width="11%" valign="top"> </td>

      <td width="49%" valign="top"><a href="#">管理员登录</a></td>

    </tr>

    <tr>

      <td> </td>

      <td> </td>

      <td> </td>

    </tr>

    <tr>

      <td colspan="3"><table width="100%" border="0">

        <tr>

          <td valign="top"> </td>

          <td valign="top"> </td>

        </tr>

        <tr>

          <td valign="top"><div align="right">姓    名:</div></td>

          <td valign="top"><label>

            <input type="text" name="textfield" />

          </label></td>

        </tr>

        <tr >

          <td width="421" valign="top"> </td>

          <td width="561" valign="top"> </td>

        </tr>

        <tr>

          <td valign="top"><div align="right">证件号码:

            </div></td>

          <td valign="top"><input type="text" name="idcard" id="idcard"/>

            <label>

            <input type="submit" name="Submit3" value="验证" onClick="check()"/>

            </label></td>

        </tr>

        <tr>

          <td valign="top"> </td>

          <td valign="top"> </td>

        </tr>

        <tr>

          <td valign="top"><div align="right">电话号码:</div></td>

          <td valign="top"><input type="text" name="textfield22" /></td>

        </tr>

        <tr>

          <td valign="top"> </td>

          <td valign="top"> </td>

        </tr>

        <tr>

          <td valign="top"> </td>

          <td valign="top"> </td>

        </tr>

        <tr>

          <td valign="top">

            <div align="right">

              <input type="submit" name="Submit" value="提交" />

              </div></td>

          <td valign="top"><label>

              <input type="reset" name="Submit2" value="重置" />

              </label></td>

        </tr>

      </table></td>

    </tr>

  </table>

</form> 

</body>

</html>

var s="11111111111111x"

if (s.length==18){

 if (s.substring(17).toUpperCase()=="X"){

  if (isNaN(s.substr(0,17))){

   alert("不是身份证号码")

  }

  else{

   alert("是身份证号码")

  }

 }

 else{

  if (isNaN(s)){

   alert("不是身份证号码")

  }

  else{

   alert("是身份证号码")

  }

 }

}

else if(s.length==15 && !isNaN(s)){

 alert("是身份证号码")

}

else{

 alert("不是身份证号码")

}