JavaScript 身份證號(hào)有效驗(yàn)證詳解及實(shí)例代碼
最近需要對(duì)身份證合法性進(jìn)行驗(yàn)證,實(shí)名驗(yàn)證是不指望了,不過原來的驗(yàn)證規(guī)則太過簡(jiǎn)單,只是簡(jiǎn)單的驗(yàn)證了身份證長(zhǎng)度,現(xiàn)在業(yè)務(wù)需要加強(qiáng)下身份證驗(yàn)證規(guī)則,網(wǎng)上找到了不少資料,不過都不合偶的心意,無奈只好直接寫一個(gè),代碼還是用自己的舒服哈
JavaScript驗(yàn)證身份證號(hào)
<%@ 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>身份證驗(yàn)證</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="身份證號(hào)合法 尾號(hào)為:"+arr3[r]; }else{ document.getElementById("show").innerHTML="非合法身份證號(hào)"; } } }else{ document.getElementById("show").innerHTML="非合法身份證號(hào)"; } } </script> </head> <body > <input id="gettext" type="text" size="30" onkeyup="checkid()"> <p id="show"></p><br> </body> </html>
根據(jù)網(wǎng)上的身份證的計(jì)算公式寫的一個(gè)驗(yàn)證身份證號(hào)的js
第一步:將身份證號(hào)碼的第1位數(shù)字與7相乘;將身份證號(hào)碼的第2位數(shù)字與9相乘;將身份證號(hào)碼的第3位數(shù)字與10相乘;將身份證號(hào)碼的第4位數(shù)字與5相乘;將身份證號(hào)碼的第5位數(shù)字與8相乘;將身份證號(hào)碼的第6位數(shù)字與4相乘;將身份證號(hào)碼的第7位數(shù)字與2相乘;將身份證號(hào)碼的第8位數(shù)字與1相乘;將身份證號(hào)碼的第9位數(shù)字與6相乘;將身份證號(hào)碼的第10位數(shù)字與3相乘;將身份證號(hào)碼的第11位數(shù)字與7相乘;將身份證號(hào)碼的第12位數(shù)字與9相乘;將身份證號(hào)碼的第13位數(shù)字與10相乘;將身份證號(hào)碼的第14位數(shù)字與5相乘;將身份證號(hào)碼的第15位數(shù)字與8相乘;將身份證號(hào)碼的第16位數(shù)字與4相乘;將身份證號(hào)碼的第17位數(shù)字與2相乘。
第二步:將第一步身份證號(hào)碼1~17位相乘的結(jié)果求和,全部加起來。
第三步:用第二步計(jì)算出來的結(jié)果除以11,這樣就會(huì)出現(xiàn)余數(shù)為0,余數(shù)為1,余數(shù)為2,余數(shù)為3,余數(shù)為4,余數(shù)為5,余數(shù)為6,余數(shù)為7,余數(shù)為8,余數(shù)為9,余數(shù)為10共11種可能性。
第四步:如果余數(shù)為0,那對(duì)應(yīng)的最后一位身份證的號(hào)碼為1;如果余數(shù)為1,那對(duì)應(yīng)的最后一位身份證的號(hào)碼為0;如果余數(shù)為2,那對(duì)應(yīng)的最后一位身份證的號(hào)碼為X;如果余數(shù)為3,那對(duì)應(yīng)的最后一位身份證的號(hào)碼為9;如果余數(shù)為4,那對(duì)應(yīng)的最后一位身份證的號(hào)碼為8;如果余數(shù)為5,那對(duì)應(yīng)的最后一位身份證的號(hào)碼為7;如果余數(shù)為6,那對(duì)應(yīng)的最后一位身份證的號(hào)碼為6;如果余數(shù)為7,那對(duì)應(yīng)的最后一位身份證的號(hào)碼為5;如果余數(shù)為8,那對(duì)應(yīng)的最后一位身份證的號(hào)碼為4;如果余數(shù)為9,那對(duì)應(yīng)的最后一位身份證的號(hào)碼為3;如果余數(shù)為10,那對(duì)應(yīng)的最后一位身份證的號(hào)碼為2。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- Javascript使用正則驗(yàn)證身份證號(hào)(簡(jiǎn)單)
- JS代碼隨機(jī)生成姓名、手機(jī)號(hào)、身份證號(hào)、銀行卡號(hào)
- 如何利用JS通過身份證號(hào)獲取當(dāng)事人的生日、年齡、性別
- js實(shí)現(xiàn)根據(jù)身份證號(hào)自動(dòng)生成出生日期
- js驗(yàn)證真實(shí)姓名與身份證號(hào)是否匹配
- JavaScript正則表達(dá)式驗(yàn)證身份證號(hào)碼是否合法(兩種方法)
- 如何用javascript正則表達(dá)式驗(yàn)證身份證號(hào)碼是否合法
- javascript驗(yàn)證身份證號(hào)
- javascript實(shí)現(xiàn)根據(jù)身份證號(hào)讀取相關(guān)信息
- js實(shí)現(xiàn)二代身份證號(hào)碼驗(yàn)證詳解
- js實(shí)現(xiàn)身份證號(hào)碼驗(yàn)證的簡(jiǎn)單實(shí)例
相關(guān)文章
在TypeScript項(xiàng)目中搭配Axios封裝后端接口調(diào)用
這篇文章主要介紹了在TypeScript項(xiàng)目中搭配Axios封裝后端接口調(diào)用,本文記錄一下在?TypeScript?項(xiàng)目里封裝?axios?的過程,之前在開發(fā)?StarBlog-Admin?的時(shí)候已經(jīng)做了一次封裝,不過那時(shí)是JavaScript跟TypeScript還是有些區(qū)別的,需要的朋友可以參考下2024-01-01Javascript實(shí)現(xiàn)hashcode函數(shù)實(shí)現(xiàn)對(duì)象比較與原理說明
在JavaScript中,數(shù)值的比較是比較簡(jiǎn)單的,使用相等(==)和全等(===)符號(hào)基本上可以解決大多數(shù)非對(duì)象的比較。但是相等(==)和全等(===)符號(hào)在對(duì)象 object 的比較上,就不能滿足所有的要求了2023-06-06JavaScript實(shí)現(xiàn)的MD5算法完整實(shí)例
這篇文章主要介紹了JavaScript實(shí)現(xiàn)的MD5算法,以完整實(shí)例形式分析了基于JavaScript實(shí)現(xiàn)MD5算法的具體步驟與相關(guān)技巧,需要的朋友可以參考下2016-02-02js中使用DOM復(fù)制(克?。┲付ü?jié)點(diǎn)名數(shù)據(jù)到新的XML文件中的代碼
使用DOM復(fù)制(克隆)指定節(jié)點(diǎn)名數(shù)據(jù)到新的XML文件中 ,用到三個(gè)類的相關(guān)知識(shí)點(diǎn) : DOMDocument - DOMNodeList - DOMNode2011-07-07G6?TreeGraph樹圖節(jié)點(diǎn)懶加載使用場(chǎng)景示例
這篇文章主要為大家介紹了G6?TreeGraph樹圖節(jié)點(diǎn)懶加載使用場(chǎng)景示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10CSS和JS標(biāo)簽style屬性對(duì)照表(方便js開發(fā)的朋友)
CSS和JS標(biāo)簽style屬性對(duì)照表(方便js開發(fā)的朋友),需要的朋友可以收藏下。2010-11-11Javascript如何實(shí)現(xiàn)對(duì)象扁平化實(shí)例詳解
這篇文章主要給大家介紹了關(guān)于Javascript如何實(shí)現(xiàn)對(duì)象扁平化的扁平化處理簡(jiǎn)而言之就是對(duì)對(duì)象中的對(duì)象提取出來,放在一個(gè)對(duì)象里面,形象的說就是把兒子的后代當(dāng)成自己的兒子,下面相關(guān)資料,需要的朋友可以參考下2022-11-11