市民権番号は、6桁のアドレスコード、8桁の生年月日コード、3桁のシーケンスコード、および1桁の検証コードで構成されています。
アドレスコードの最初の2桁は州を表し、中央の2桁は都市を表し、最後の2桁は郡を表しています
シーケンスコードは、同じアドレスコードで識別されたエリア内の同じ年、月、日に生まれた人に割り当てられたシーケンス番号を表します。注文コードの奇数は男性に割り当てられ、偶数が女性に割り当てられます。
検証コードは、最初の17桁のコードに基づいて計算され、ISO 7064:1983.mod 11-2の検証コードに従って計算された検証コードです。
検証コードの計算方法:
1)前のID番号の17桁の数に異なる係数を掛け、最初の数字から17桁までの係数は次のとおりです。79 10 5 8 4 1 6 3 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桁のID番号をサポートしています。アドレスエンコード、生年月日、および検証桁の検証がサポートされています。
コードコピーは次のとおりです。
<div style = "パディング:20px 40px;">
<h1 style = "font-size:20px; color:#999;"> IDカードクエリ</h1>
<input type = "text" placeholder = "id number" id = "code">を入力します
<入力型= "button" 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 = ''、誕生日= ''、sex = '';
関数トリム(str){
return str.replace(/^/s*|/s*$/g、 "");
}
// IDカードを確認します
関数IdentityCodevalid(code){
code = trim(code);
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:" fujian "、" jiangxi "、" jiangxi "、" "、" "、" "、" "、" "、" jananan 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( "IDカード番号形式エラー");
home = ''、誕生日= ''、sex = '';
falseを返します。
}
if(!city [code.substring(0,2)]){
アラート( "アドレスエンコードエラー");
home = ''、誕生日= ''、sex = '';
falseを返します。
}
if(code.length == 18){// 18ビットIDカードは最後のチェックビットを確認する必要があります
var codearr = code.split( '');
var因子= [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] * factor [i];
}
if(parity [sum%11]!= codearr [17]){
アラート( "BITエラーを確認する");
home = ''、誕生日= ''、sex = '';
falseを返します。
}
}
//州
home = city [code.substring(0,2)];
//誕生日
誕生日= code.substring(6,10)+'year'+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')。value;
IdentityCodevalid(code);
document.queryselector( '#home span')。innerhtml = home;
document.QuerySelector( '#Birthday Span')。innerhtml = Birthday;
document.queryselector( '#sex span')。innerhtml = sex;
}
</script>
この記事では、主に市民IDカードのルールに基づいて関連するID情報を読み取ります。これは非常に便利で実用的であり、すべての人に推奨されています。