這篇文章主要介紹了JavaScript 身份證號有效驗證詳解及實例代碼的相關資料,需要的朋友可以參考下
JavaScript驗證身份證號
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
<%@ 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。
(轉載)http://www.jb51.net/article/95287.htm
