시민권 번호는 6 자리 주소 코드, 8 자리 출생 날짜 코드, 3 자리 시퀀스 코드 및 1 자리 인증 코드로 구성됩니다.
주소 코드의 처음 두 자리는 지방을 나타내고, 중간 숫자는 도시를 나타내고, 마지막 두 자리는 카운티를 나타냅니다.
시퀀스 코드는 동일한 주소 코드로 식별 된 영역 내에서 같은 해, 월 및 일에 태어난 사람에게 할당 된 시퀀스 번호를 나타냅니다. 주문 코드의 홀수는 남성에게 할당되며 숫자는 여성에게 할당됩니다.
확인 코드는 첫 번째 17 자리 코드와 ISO 7064 : 1983의 검증 코드에 따라 계산 된 검증 코드입니다.
검증 코드 계산 방법 :
1) 이전 ID 수의 17 자리 수를 다른 계수로 곱하고 첫 번째 숫자에서 17 자리까지의 계수는 다음과 같습니다. 7 9 10 5 8 4 2 1 6 7 9 10 5 8 4 2;
2)이 17 자리 수와 계수를 곱한 결과를 추가하고 나머지를 얻으려면 11으로 나누십시오.
4) 나머지는 11 숫자 0 1 2 3 4 5 6 7 8 9 10을 가질 수 있으며, 각각의 마지막 ID 카드의 수는 1 0 x 9 8 7 6 5 4 3 2입니다.
ID 번호의 합법성 검증은 15 자리 및 18 자리 ID 번호를 지원합니다. 주소 인코딩, 생년월일 및 확인 숫자 확인을 지원합니다.
코드 사본은 다음과 같습니다.
<div style = "패딩 : 20px 40px;">
<h1 style = "font-size : 20px; color :#999;"> Identity Card Query </h1>
<입력 유형 = "text"자리 표시기 = "ID 번호를 입력"id = "Code">
<입력 유형 = "버튼"value = "query"id = "btn">
<p id = "home"> <strong> 고향 : </strong> <span> </span> </p>
<p id = "생일"> <strong> 생년월일 : </strong> <span> </span> </p>
<p id = "sex"> <strong> 성별 : </strong> <span> </span> </p>
</div>
<script type = "text/javaScript">
// 문자열 헤드와 테일 공간을 제거합니다
var home = '', 생일 = '', 섹스 = '';
기능 트림 (str) {
return str.replace (/^/s*|/s*$/g, "");
}
// ID 카드를 확인합니다
기능 IdentityCodeValid (코드) {
코드 = 트림 (코드);
var city = {11 : "Beijing", 12 : "Tianjin", 13 : "Hebei", 14 : "Shanxi", 15 : "Inner 몽골어 ", 21 :"Liaoning ", 22 :"Jilin ", 23 :"Heilongjiang ", 31 :"Shanghai ", 32 :"Jiangsu ", 33 :"Zhejiang ", 34 :"Anhui ", 35 :"푸 지안 ", 36 :"Jiangxi ","Shandong ","henan ","hengx " Hubei ", 43 :"Hunan ", 44 :"Guangdong ", 45 :"Guangxi ", 46 :"Hainan ", 50 :"Chongqing ", 51 :"Sichuan ", 52 :"Guizhou ", 53 :" Yunnan ", 54 :"Tibet ", 61 :"Shaanxi ", 62 :"Gansu ", 63 :"Qinghai ", 64 :"Ningxia ", 65 :"Xinjiang ", 71 :"Taiwan ", 81 :"Hong Kong ", 82 :"macao "};
if (! code ||!/^/d {6} (18 | 19 | 20)?/d {2} (0 [1-9] | 1 [012]) (0 [1-9] | [12]/d | 3 [01])/d {3} (/d | x) $/i.test (code)) {
Alert ( "Identity Card Number 형식 오류");
홈 = '', 생일 = '', 섹스 = '';
거짓을 반환합니다.
}
if (! city [code.substring (0,2)]) {
경고 ( "주소 인코딩 오류");
홈 = '', 생일 = '', 섹스 = '';
거짓을 반환합니다.
}
if (code.length == 18) {// 18 비트 ID 카드는 마지막 확인 비트를 확인해야합니다.
var codearr = code.split ( '');
var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; // 가중치 요소
var parity = [1, 0, 'x', 9, 8, 7, 6, 5, 4, 3, 2]; // 비트를 확인합니다
var sum = 0;
for (var i = 0; i <17; i ++) {
sum += codearr [i] * 계수 [i];
}
if (parity [sum % 11]! = codearr [17]) {
경고 ( "비트 오류 확인");
홈 = '', 생일 = '', 섹스 = '';
거짓을 반환합니다.
}
}
//주
Home = City [Code.Substring (0,2)];
//생일
생일 = Code.Substring (6,10)+'년'+Code.Substring (10,12)+'Month'+Code.Substring (12,14)+'Day';
//성별
if (code.length == 15) {
sex = code.substring (14,15)%2 == 0? '여성': '남성';
} else if (code.length == 18) {
Sex = Code.Substring (14,17)%2 == 0? '여성': '남성';
}
}
// 출력 결과
document.querySelector ( '#btn'). onclick = function () {
var code = document.querySelector ( '#code'). 값;
IdentityCodevalid (코드);
document.querySelector ( '#home Span'). innerHtml = 홈;
document.querySelector ( '#생일 span'). innerHtml = 생일;
document.querySelector ( '#sex Span'). innerHtml = 섹스;
}
</스크립트>
이 기사는 주로 Citizen ID 카드의 규칙에 따라 관련 신원 정보를 읽습니다. 이는 매우 편리하고 실용적이며 모든 사람에게 권장됩니다.