يتكون رقم المواطنة من رمز العنوان المكون من ستة أرقام ، ورمز ميلاد مكون من ثمانية أرقام ، ورمز تسلسل مكون من ثلاثة أرقام ورمز التحقق من رقم واحد.
يمثل الرقمين الأولين من رمز العنوان المقاطعة ، والرقم الأوسط يمثلان المدينة ، ويمثل آخر الرقمين المقاطعة
يمثل رمز التسلسل رقم التسلسل المخصص للأشخاص المولودين في نفس العام والشهر واليوم داخل المنطقة التي حددها رمز العنوان نفسه. يتم تعيين الأرقام الفردية لرموز الطلب للرجال ويتم تعيين الأرقام حتى للنساء.
رمز التحقق هو رمز التحقق المحسوب استنادًا إلى رموز رقم سبعة عشر أولًا ووفقًا لرمز التحقق من ISO 7064: 1983.MOD 11-2.
طريقة حساب رمز التحقق:
1) اضرب العدد المكون من 17 رقمًا من رقم المعرف السابق من خلال معاملات مختلفة ، والمعاملات من الرقم الأول إلى الرقم السابع عشر هي: 7 9 10 5 8 4 2 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 ، وعدد آخر بطاقة هوية تقابل كل منها 1 0 × 9 8 7 6 5 4 3 2.
يدعم التحقق الشرعي لرقم المعرف رقم هوية مكون من 15 رقماً و 18 رقماً ترميز العنوان وتاريخ الميلاد والتحقق من رقم التحقق.
نسخة الكود كما يلي:
<div style = "padding: 20px 40px ؛">
<h1 style = "font-size: 20px ؛ color:#999 ؛"> Quary Quary </h1>
<type type = "text" placeholder = "enter id number" id = "code">
<type type = "button" value = "query" id = "btn">
<p id = "home"> <strong> مسقط رأس: </strong> <span> </span> </p>
<p id = "birthday"> <strong> تاريخ الميلاد: </strong> <span> </span> </p>
<p id = "sex"> <strong> الجنس: </strong> <span> </span> </p>
</div>
<script type = "text/javaScript">
// قم بإزالة مساحات رأس السلسلة والذيل
var home = '' ، birthday = '' ، sex = '' ؛
وظيفة trim (str) {
إرجاع str.replace (/^/s*|/s*$/g ، "") ؛
}
// تحقق من بطاقة الهوية
دالة الهوية codevalid (رمز) {
الكود = trim (رمز) ؛
Var City = {11: "Beijing" ، 12: "Tianjin" ، 13: "Hebei" ، 14: "Shanxi" ، 15: "Inner Mongolia "، 21:" Liaoning "، 22:" Jilin "، 23:" Heilongjiang "، 31:" Shanghai "، 32:" Jiangsu "، 33:" Zhejiang "، 34: 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] |
تنبيه ("خطأ تنسيق رقم بطاقة الهوية") ؛
home = '' ، birthday = '' ، sex = '' ؛
العودة كاذبة
}
if (! city [code.substring (0،2)]) {
تنبيه ("خطأ ترميز العنوان") ؛
home = '' ، birthday = '' ، sex = '' ؛
العودة كاذبة
}
if (code.length == 18) {// تحتاج بطاقة الهوية 18 بت إلى التحقق من قطعة الاختيار الأخيرة
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 ؛
لـ (var i = 0 ؛ i <17 ؛ i ++) {
sum += codearr [i] * factor [i] ؛
}
if (التكافؤ [sum ٪ 11]! = codearr [17]) {
تنبيه ("تحقق من خطأ بت") ؛
home = '' ، birthday = '' ، sex = '' ؛
العودة كاذبة
}
}
//مقاطعة
الصفحة الرئيسية = المدينة [code.substring (0،2)] ؛
//عيد ميلاد
عيد ميلاد = code.substring (6،10)+'السنة'+code.substring (10،12)+'month'+code.substring (12،14)+'day' ؛
//جنس
if (code.length == 15) {
الجنس = code.substring (14،15) ٪ 2 == 0؟ 'أنثى': 'ذكر' ؛
} آخر إذا (code.length == 18) {
الجنس = code.substring (14،17) ٪ 2 == 0؟ 'أنثى': 'ذكر' ؛
}
}
// نتيجة الإخراج
document.queryselector ('#btn'). onClick = function () {
var code = document.queryselector ('#code'). value ؛
IdentityCodeValid (رمز) ؛
document.queryselector ('#home span'). innerhtml = home ؛
document.queryselector ('#عيد ميلاد span'). innerhtml = عيد ميلاد ؛
document.queryselector ('#sex span'). innerhtml = sex ؛
}
</script>
تقرأ هذه المقالة معلومات الهوية ذات الصلة بناءً على قواعد بطاقات هوية المواطن ، والتي تعد مريحة وعملية للغاية ، ويوصى بها للجميع.