JavaScript 社會安全號碼有效驗證詳解及執行個體代碼_javascript技巧

來源:互聯網
上載者:User

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

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,'X',9,8,7,6,5,4,3,2];function checkid(){  var t=document.getElementById("gettext").value;  if(t.length==18){    var arr=t.split('');    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。

 感謝閱讀,希望能協助到大家,謝謝大家對本站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.