首頁  >  文章  >  web前端  >  JavaScript 身分證字號有效驗證詳解及實例程式碼

JavaScript 身分證字號有效驗證詳解及實例程式碼

高洛峰
高洛峰原創
2016-12-09 14:29:41942瀏覽

最近需要對身分證合法性進行驗證,實名驗證是不指望了,不過原來的驗證規則太過簡單,只是簡單的驗證了身分證長度,現在業務需要加強下身分證驗證規則,網路上找到了不少資料,不過都不合偶的心意,無奈只好直接寫一個,代碼還是用自己的舒服哈

JavaScript驗證身份證號

<%@ page language="java" contentType="text/html; charset=GB18030"
  pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>身份证验证</title>
<script type="text/javascript">
var arr2=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
var arr3=[1,0,&#39;X&#39;,9,8,7,6,5,4,3,2];
function checkid(){
  var t=document.getElementById("gettext").value;
  if(t.length==18){
    var arr=t.split(&#39;&#39;);
    var s;
    var reg = /^\d+$/;
    var pd=0;
    for(i=0;i<17;i++){
      if(reg.test(arr[i])){
        s=true;
        pd=arr[i]*arr2[i]+pd;
      }else{
        s=false;
        break;
      }
    }
    if(s=true){
      var r=pd%11;
      if(arr[17]==arr3[r]){
        document.getElementById("show").innerHTML="身份证号合法  尾号为:"+arr3[r];
      }else{
        document.getElementById("show").innerHTML="非合法身份证号";
      }
    }
     
  }else{
    document.getElementById("show").innerHTML="非合法身份证号";
  }
}
</script>
</head>
<body >
<input id="gettext" type="text" size="30" onkeyup="checkid()">
<p id="show"></p><br>
</body>
</html>

   

根據網上的身份證的計算公式寫的一個驗證公式證號的js

第一步:將身分證號碼的第1位數字與7相乘;將身分證號碼的第2位數字與9相乘;將身分證號碼的第3位數字與10相乘;將身分證號碼的第4位數字與5相乘;將身分證號碼的第5位數字與8相乘;將身分證號碼的第6位數字與4相乘;將身分證號碼的第7位數字與2相乘;將身分證號碼的第8位數字與1相乘;將身分證號碼的第9位數字與6相乘;將身分證號碼的第10位數字與3相乘;將身分證號碼的第11位數字與7相乘;將身分證號碼的第12位數字與9相乘;將身分證號碼的第13位數字與10相乘;將身分證號碼的第14位數字與5相乘;將身分證號碼的第15位數字與8相乘;將身分證號碼的第16位數字與4相乘;將身分證號碼的第17位數字與2相乘。

第二步:將第一步身分證號碼1~17位元相乘的結果求和,全部加起來。

第三步:用第二步計算出來的結果除以11,這樣就會出現餘數為0,餘數為1,餘數為2,餘數為3,餘數為4,餘數為5,餘數為6,餘數為7,餘數為8,餘數為9,餘數為10共11種可能性。

第四步:如果餘數為0,那對應的最後一位身分證的號碼為1;如果餘數為1,則對應的最後一位身分證的號碼為0;如果餘數為2,那對應的最後一位身分證的號碼為X;若餘數為3,則對應的最後一位身分證的號碼為9;若餘數為4,則對應的最後一位身分證的號碼為8;若餘數為5 ,那對應的最後一位身分證的號碼為7;若餘數為6,則對應的最後一位身分證的號碼為6;若餘數為7,則對應的最後一位身分證的號碼為5;若餘數為8,則對應的最後一位身分證的號碼為4;如果餘數為9,則對應的最後一位身分證的號碼為3;若餘數為10,則對應的最後一位身分證的號碼為2。


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn