JavaScript 身份證號有效驗證詳解及實例代碼
最近需要對身份證合法性進(jìn)行驗證,實名驗證是不指望了,不過原來的驗證規(guī)則太過簡單,只是簡單的驗證了身份證長度,現(xiàn)在業(yè)務(wù)需要加強(qiáng)下身份證驗證規(guī)則,網(wǎng)上找到了不少資料,不過都不合偶的心意,無奈只好直接寫一個,代碼還是用自己的舒服哈
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>
根據(jù)網(wǎng)上的身份證的計算公式寫的一個驗證身份證號的js
第一步:將身份證號碼的第1位數(shù)字與7相乘;將身份證號碼的第2位數(shù)字與9相乘;將身份證號碼的第3位數(shù)字與10相乘;將身份證號碼的第4位數(shù)字與5相乘;將身份證號碼的第5位數(shù)字與8相乘;將身份證號碼的第6位數(shù)字與4相乘;將身份證號碼的第7位數(shù)字與2相乘;將身份證號碼的第8位數(shù)字與1相乘;將身份證號碼的第9位數(shù)字與6相乘;將身份證號碼的第10位數(shù)字與3相乘;將身份證號碼的第11位數(shù)字與7相乘;將身份證號碼的第12位數(shù)字與9相乘;將身份證號碼的第13位數(shù)字與10相乘;將身份證號碼的第14位數(shù)字與5相乘;將身份證號碼的第15位數(shù)字與8相乘;將身份證號碼的第16位數(shù)字與4相乘;將身份證號碼的第17位數(shù)字與2相乘。
第二步:將第一步身份證號碼1~17位相乘的結(jié)果求和,全部加起來。
第三步:用第二步計算出來的結(jié)果除以11,這樣就會出現(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,那對應(yīng)的最后一位身份證的號碼為1;如果余數(shù)為1,那對應(yīng)的最后一位身份證的號碼為0;如果余數(shù)為2,那對應(yīng)的最后一位身份證的號碼為X;如果余數(shù)為3,那對應(yīng)的最后一位身份證的號碼為9;如果余數(shù)為4,那對應(yīng)的最后一位身份證的號碼為8;如果余數(shù)為5,那對應(yīng)的最后一位身份證的號碼為7;如果余數(shù)為6,那對應(yīng)的最后一位身份證的號碼為6;如果余數(shù)為7,那對應(yīng)的最后一位身份證的號碼為5;如果余數(shù)為8,那對應(yīng)的最后一位身份證的號碼為4;如果余數(shù)為9,那對應(yīng)的最后一位身份證的號碼為3;如果余數(shù)為10,那對應(yīng)的最后一位身份證的號碼為2。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- Javascript使用正則驗證身份證號(簡單)
- JS代碼隨機(jī)生成姓名、手機(jī)號、身份證號、銀行卡號
- 如何利用JS通過身份證號獲取當(dāng)事人的生日、年齡、性別
- js實現(xiàn)根據(jù)身份證號自動生成出生日期
- js驗證真實姓名與身份證號是否匹配
- JavaScript正則表達(dá)式驗證身份證號碼是否合法(兩種方法)
- 如何用javascript正則表達(dá)式驗證身份證號碼是否合法
- javascript驗證身份證號
- javascript實現(xiàn)根據(jù)身份證號讀取相關(guān)信息
- js實現(xiàn)二代身份證號碼驗證詳解
- js實現(xiàn)身份證號碼驗證的簡單實例
相關(guān)文章
深入理解javascript構(gòu)造函數(shù)和原型對象
對象,是javascript中非常重要的一個梗,是否能透徹的理解它直接關(guān)系到你對整個javascript體系的基礎(chǔ)理解,說白了,javascript就是一群對象在攪。。(嗶!)。2014-09-09
游戲開發(fā)中如何使用CocosCreator進(jìn)行音效處理
這篇文章主要介紹了游戲開發(fā)中如何使用CocosCreator進(jìn)行音效處理,并對音效組件進(jìn)行封裝,方便以后使用,同學(xué)們看完之后,一定要親手實驗一下2021-04-04
Webpack 之 babel-loader文件預(yù)處理器詳解
這篇文章主要介紹了Webpack 之 babel-loader文件預(yù)處理器詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03
Add a Picture to a Microsoft Word Document
Add a Picture to a Microsoft Word Document...2007-06-06

