1. هيكل وتمثيل رقم الهوية
1. هيكل الرقم
وفقًا للأحكام المتعلقة بأرقام هوية المواطنة في المعيار الوطني GB11643-1999 من جمهورية الصين الشعبية ، فإن رقم هوية المواطنة هو رمز مزيج مميز ، يتكون من رمز الأنطولوجيا العددي سبعة عشر من رقم. أمر الترتيب من اليسار إلى اليمين: رمز العنوان المكون من ستة أرقام ، ورمز الميلاد المكون من ثمانية أرقام ، ورمز التسلسل المكون من ثلاثة أرقام ، ورمز التحقق من رقم واحد.
2. رمز العنوان
يجب تنفيذ مدونة القسم الإداري للمقاطعة (المدينة ، بانر ، المنطقة) حيث يوجد الإقامة الدائمة لكائن الترميز وفقًا لأحكام GB/T2260.
3. تاريخ الميلاد
إنه يشير إلى سنة وشهر ويوم ولادة الكائن المشفر. يجب تنفيذها وفقًا لأحكام GB/T7408. لا يوجد فاصل بين رموز العام والشهر واليوم.
4. رمز التسلسل
ويشير إلى أنه داخل المنطقة التي تم تحديدها بواسطة رمز العنوان نفسه ، فإن رقم التسلسل المخصص للأشخاص المولودين في نفس العام والشهر واليوم. يتم تعيين العدد الفردي لرمز التسلسل للرجال ويتم تعيين الأرقام حتى للنساء.
5. رمز التحقق
(1) صيغة المبلغ المرجح لكود الأنطولوجيا من سبعة عشر رقمًا
s = sum (ai * wi) ، i = 0 ، ... ، 16 ، المبلغ الأول من الأوزان الـ 17 الأولى
الذكاء الاصطناعي: يشير إلى قيمة رقم رقم بطاقة الهوية في الموضع I-TH
WI: يمثل عامل الترجيح في الموضع الأول
7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
(2) وضع الحساب
y = mod (s ، 11)
(3) الحصول على رمز التحقق المقابل من خلال الوحدة النمطية
Y: 0 1 2 3 4 5 6 7 8 9 10
رمز التحقق: 1 0 x 9 8 7 6 5 4 3 2
وهذا يعني ، إذا تم الحصول على الباقي على أنه 1 ، فيجب أن يكون بت الشيكات الأخيرة P المقابلة 0.
رقم 15 رقم:
aabbccyymmddxxs
رقم 18 رقم:
aabbccyyyyymmddxxsp
2. رمز العنوان
أول 6 أرقام من بطاقة الهوية هي رموز القسمة الإدارية (يشار إليها باسم الرموز الرقمية) أوصاف (راجع "GB/T 2260-2007 قوانين القسم الإداري لجمهورية الصين الشعبية"): يتبنى المبدأ والهيكل في مجال الإداريات المسببة للهيئة المتخصصة ، المليئة بالإدارية ، المظهر المسبق ، المليئة بالشكلات المركزية ، المليئة بالإدارية ، المناطق) ، والمدن (المناطق ، والمحافظات المستقلة ، والبطولات) ، والمقاطعات (المقاطعات المستقلة ، والمدن على مستوى المقاطعة ، واللافتات ، واللافتات المستقلة ، والمناطق البلدية ، ومناطق الغابات ، والمناطق الخاصة) في بلدي وفقًا للتسلسل الهرمي.
(1) الأرقام الأولى والثانية: مدونة المقاطعة التي تقع فيها ، وتمثل مقاطعة ، ومنطقة مستقلة ، وبلدية مباشرة تحت الحكومة المركزية ، ومنطقة إدارية خاصة.
الجدول الإقليمي والبلدي الجدول: {11: "بكين" ، 12: "تيانجين" ، 13: "هيبي" ، 14: "شانشي" ، 15: "منغوليا الداخلية" ، 21: "لياونينج" ، 22: "جيلين" ، 23: "Heilongjiang" ، 31: "Shanghai" 35: "Fujian" ، 36: "Jiangxi" ، 37: "Shandong" ، 41: "Henan" ، 42: "Hubei" ، 43: "Hunan" ، 44: "Yunnan" ، 54: "Tibet" ، 61: "Shaanxi" ، 62: "Gansu" ، 63: "Qinghai" ، 64: "Ningxia" ، 65: "Xinjiang" ، 71: "Taiwan" ، 81: "Hong Kong" ، 82:
(2) الأرقام الثالثة والرابعة: قانون المدينة (المقاطعة) على مستوى المقاطعة ، والذي يمثل قانون الملخص للمقاطعات والمقاطعات الخاضعة للولاية القضائية للمدينة والمنطقة والمحافظة المستقلة والتحالف والبلدية مباشرةً بموجب الحكومة المركزية ، وقانون الملخص للتقسيمات الإدارية للمقاطعة مباشرة (المنطقة المستقلة).
―01 ~ 20 ، 51 ~ 70 يعني مدينة ، والبلديات مباشرة تحت الحكومة المركزية تقول أن 01 تعني مدينة ، وبعد 02 تعني مقاطعة ضاحية داخل اختصاص الحكومة البلدية ؛
- 21 ~ 50 يعني المناطق والمحافظات المستقلة والتحالفات ؛
90 يمثل مدونة الملخص للتقسيمات الإدارية على مستوى المقاطعة مباشرة تحت المقاطعة (المنطقة المستقلة).
(3) الرقمين الخامس والسادس: قانون مقاطعة المحافظة (المدينة) ، مما يشير إلى مقاطعة ، مقاطعة مستقلة ، مدينة على مستوى المقاطعة ، لافتة ، لافتة مستقلة ، منطقة بلدية ، منطقة فورست ، ومنطقة خاصة.
―01 ~ 20 تعني المدن على مستوى المقاطعة تحت اختصاص المدينة والمنطقة (المحافظات المستقلة والبطولات) في ظل اختصاص المدن على مستوى المقاطعة والمناطق الخاصة البلدية والانقسامات الإدارية على مستوى المقاطعة مباشرة تحت الإقليمات (المنطقة المستقلة). 01 يعني عادة رمز ملخص الولاية القضائية ؛
- 21 ~ 80 يعني مقاطعة ومقاطعة مستقلة وراية ولافتة مستقلة ومنطقة غابات ومنطقة خاصة إقليمية ؛
-81 ~ 99 يعني أن المقاطعة (المنطقة المستقلة) لديها مدينة على مستوى المقاطعة تحت اختصاصها.
3. آخرون
رقم هوية مكون من 15 رقمًا:
الرقمين السابع والثامن هما سنة الولادة (أرقام مزدوجة ، ممثلة في آخر رقمين من العام).
رقم 9 و 10 هما شهر الميلاد.
يمثل 11 و 12 تاريخ الميلاد.
البتات 13 و 14 هي الرموز المتسلسلة ، وهذا هو رقم عشوائي.
يمثل الرقم الخامس عشر الجنس ، والرقم الفردي هو ذكر ، والرقم الزوجي للإناث.
رقم معرف رقم 18 رقم:
7 و 8 و 9 و 10 هي سنة الولادة (أربعة أرقام).
رقم 11 و 12 هما شهور الولادة.
يمثل 13 و 14 تاريخ الميلاد.
البتات 15 و 16 هي رموز التسلسل.
يمثل الموقف السابع عشر الجنس ، والأرقام الفردية من الذكور وحتى الأرقام من الإناث.
الشيء الأخير هو بت الشيك.
4. مثال رمز JS
var idcardnoutil = { /*المقاطعة ، جدول الكود البلدي* / provinceandcity: {11: "Beijing" ، 12: "Tianjin" ، 13: "Hebei" ، 14: "Shanxi" ، 15: "Inner Mongolia "، 21:" Liaoning "، 22:" Jilin "، 23:" Heilongjiang "، 31:" Shanghai "، 32:" Jiangsu "، 33:" Zhejiang "، 34 : "Anhui" ، 35: "Fujian" ، 36: "Jiangxi" ، 37: "Shandong" ، 41: "Henan" ، 42: "Hubei" ، 43: "Hunan" ، 44: "Guangdong" ، 45: "Guangxi" ، 46: "Hainan" ، 50: "Chongqing" ، 51: "Sichuan" ، 52: "Guizhou" ، 53: "Yunnan" ، 54: "Tib ET "، 61:" Shaanxi "، 62:" Gansu "، 63:" Qinghai "، 64:" Ningxia "، 65:" Xinxia "، 71: Kong "، 82:" Macao "، 91:" Foreign "} ، /*كل عامل ترجيح* /POLERS: [" 7 "،" 9 "،" 10 "،" 5 "،" 8 "،" 4 "،" 2 "،" 1 "،" 6 "،" 3 "،" 7 "،" 9 "،" 10 "،" 5 "،" 4 "،" 2 "، 2". 18 حساب رمز*/ paritybit: ["1" ، "0" ، "X" ، "9" ، "8" ، "7" ، "6" ، "5 ،" 4 "،" 3 "،" 2 "] ،/*Genders*/ Genders: {male: /^Budap1-9/201/d {5) $/.test(addressCode) ؛ إذا (! تحقق) إرجاع خطأ ؛ if (idcardnoutil.provincandcitys [parseint (addressCode.SubString (0،2))]) {return true ؛ } آخر {return false ؛ }} ،/*تحقق من رمز التاريخ*/checkbirthdaycode: function (birDayCode) {var check = /^ budap1-9/9/d {3 )(0 budap1-9 )|| ((((Budap0-2020onmnymnymny (((($ $ $ $ $ $ $ $ $ $ $) ؛ إذا (! تحقق) إرجاع خطأ ؛ var yyyy = parseint (birDayCode.SubString (0،4) ، 10) ؛ var mm = parseint (birDayCode.SubString (4،6) ، 10) ؛ var dd = parseint (birDayCode.SubString (6) ، 10) ؛ var xData = تاريخ جديد (yyyy ، mm-1 ، dd) ؛ if (xdata> new date ()) {return false ؛ // لا يمكن أن يكون عيد ميلاد أكبر من التاريخ الحالي} آخر إذا ((xData.getlyear () == yyyy) && ( } آخر {return false ؛ }} ، /*حساب رمز المعايرة* / getParityBit: الدالة (idcardno) {var id17 = idcardno.substring (0،17) ؛ /*مرجح*/ var power = 0 ؛ لـ (var i = 0 ؛ i <17 ؛ i ++) {power+= parseint (id17.charat (i) ، 10) * parseint (idcardnoutil.powers [i]) ؛ } /*model* / var mod = power ٪ 11 ؛ إرجاع idcardnoutil.paritybit [mod] ؛ } ، /*تحقق من رمز التحقق* / checkparitybit: الدالة (idcardno) {var paritybit = idcardno.charat (17) .ToupperCase () ؛ if (idcardNoutil.getParityBit (idcardno) == paritybit) {return true ؛ } آخر {return false ؛ }} ،/*تحقق من رقم معرف 15 بت أو 18 بت*/checkIdCardno: الدالة (idcardno) {// التحقق الأساسي من رقم المعرف 15-bit و 18-bit var check = /^/d {15 )|(/d {17 )(/doux| exmmnmzdno) ؛ $) (idcardno) ؛ إذا (! تحقق) إرجاع خطأ ؛ . } آخر إذا (idcardno.length == 18) {return idcardnoutil.check18IdcardNo (idcardno) ؛ } آخر {return false ؛ }} ، // تحقق من رقم المعرف المكون من 15 رقمًا check15idcardno: الدالة (idcardno) {// /^ Budap1-9/9/d {7 )(0 Budap1-9 )||(1 Budap00-2020onmnymnymnymn )(0 budap1-9)| e budap1-2. إذا (! تحقق) إرجاع خطأ ؛ // تحقق من رمز العنوان var addressCode = idcardno.substring (0،6) ؛ check = idcardnoutil.checkaddressCode (addressCode) ؛ إذا (! تحقق) إرجاع خطأ ؛ var birddayCode = '19' + idcardno.substring (6،12) ؛ // تحقق من رمز تاريخ إرجاع idcardnoutil.checkbirthdaycode (birdayCode) ؛ } ، // تحقق من رقم معرف الرقم المكون من 18 رقماً Check18IdCardno: دالة (idcardno) {// /^Budap1-9/91/d {5) Budap1-9/1/d {3 )(0 Budap1-9) everons e budap00202020onmnymnymnymnymnymny )(0 budap1-9) e bududcardno (idcardno) ؛ إذا (! تحقق) إرجاع خطأ ؛ // تحقق من رمز العنوان var addressCode = idcardno.substring (0،6) ؛ check = idcardnoutil.checkaddressCode (addressCode) ؛ إذا (! تحقق) إرجاع خطأ ؛ // التحقق من رمز Var BirdDayCode = idcardno.substring (6،14) ؛ check = idcardnoutil.checkbirthdayCode (birDayCode) ؛ إذا (! تحقق) إرجاع خطأ ؛ //checkcardnoutil.checkparitybit(idcardno) ؛ } ، formatdatecn: function (day) {var yyyy = day.substring (0،4) ؛ var mm = day.substring (4،6) ؛ var dd = day.substring (6) ؛ إرجاع yyyy + '-' + mm + '-' + dd ؛ } ، // الحصول على المعلومات getIdCardInfo: function (idcardno) {var idcardInfo = {الجنس: "" ، // عيد ميلاد الجنس: "" // تاريخ الميلاد (Yyyy-MM-DD)} ؛ if (idcardno.length == 15) {var aday = '19' + idcardno.substring (6،12) ؛ idcardinfo.birthday = idcardnoutil.formatedatecn (aday) ؛ if (parseint (idcardno.charat (14)) ٪ 2 == 0) {idcardinfo.gender = idcardnoutil.genders.female ؛ } آخر {idcardInfo.gender = idcardnoutil.genders.male ؛ }} آخر إذا (idcardno.length == 18) {var aday = idcardno.substring (6،14) ؛ idcardinfo.birthday = idcardnoutil.formatedatecn (aday) ؛ if (parseint (idcardno.charat (16)) ٪ 2 == 0) {idcardinfo.gender = idcardnoutil.genders.female ؛ } آخر {idcardInfo.gender = idcardnoutil.genders.male ؛ }} إرجاع idcardInfo ؛ } ، /*18-bit to 15-bit* / getId15: function (idcardno) {if (idcardno.length == 15) {return idcardno ؛ } آخر إذا (idcardno.length == 18) {return idcardno.substring (0،6) + idcardno.substring (8،17) ؛ } آخر {return null ؛ }} ، /*15-bit to 18-bit* / getId18: function (idcardno) {if (idcardno.length == 15) {var id17 = idcardno.substring (0،6) + '19' + idcardno.substring (6) ؛ var paritybit = idcardnoutil.getParityBit (ID17) ؛ إرجاع ID17 + paritybit ؛ } آخر إذا (idcardno.length == 18) {return idcardno ؛ } آخر {return null ؛ }}} ؛ // التحقق من رقم بطاقة الهوية jquery.validator.addmethod ("idcardno" ، الدالة (القيمة ، العنصر) {return this.optional (element) || idcardnoutil.checkidcardno (value) ؛} ، "يرجى تحديد رقم معرف صالح.") ؛ // الحصول على معلومات بطاقة الهوية var idcardinfo = idcardnoutil.getIdCardInfo (idcardno) ؛ ALERT (IDCARDINFO.Gender + "|" + IdCardInfo.BirthDay) ؛ ملاحظة: عند إدخال وتحديد ما إذا كانت بطاقة الهوية نفسها موجودة بالفعل في قاعدة البيانات (1) إذا كنت تدخل معرفًا 15 بت: اكتشف أولاً ما إذا كان معرف 15 بت موجود. إذا لم يكن موجودًا ، فأنت بحاجة إلى تحويل بطاقة الهوية 15 بت إلى بطاقة هوية مقاس 18 بت. إذا كان لا يزال غير موجود ، فيمكنك إدخال النظام. (2) إذا كنت تدخل معرفًا 18 بت: اكتشف أولاً ما إذا كان معرف 18 بت موجود. إذا لم يكن موجودًا ، فأنت بحاجة إلى تحويل بطاقة الهوية المكونة من 18 بت إلى بطاقة هوية 15 بت. إذا كان لا يزال غير موجود ، فيمكنك إدخال النظام. إذا وجدت بطاقة الهوية المقابلة 15 بت المقابلة ، فأنت بحاجة إلى تحديث 15 بت إلى 18 بت.المثال البسيط أعلاه للتحقق من JS لبطاقات هوية 15 بت و 18 بت هو كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.