1. Estructura y representación del número de identificación
1. La estructura del número
Según las disposiciones sobre los números de identidad de la ciudadanía en el estándar nacional GB11643-1999 de la República Popular de China, el número de identidad de ciudadanía es un código de combinación característica, que consiste en un código de ontología numérica de diecisiete dígitos y un código de verificación único. La orden de disposición es de izquierda a derecha: código de dirección de seis dígitos, fecha de ocho dígitos de código de nacimiento, código de secuencia de tres dígitos y código de verificación de un dígito.
2. Código de dirección
El Código de la División Administrativa del Condado (Ciudad, Banner, Distrito), donde se ubica la residencia permanente del objeto de codificación se implementará de acuerdo con las disposiciones de GB/T2260.
3. Código de fecha de nacimiento
Indica el año, mes y día del nacimiento del objeto codificado. Se ejecutará de acuerdo con las disposiciones de GB/T7408. No hay separadores entre los códigos de año, mes y día.
4. Código de secuencia
Indica que dentro del área identificada por el mismo código de dirección, el número de secuencia asignado a las personas nacidas en el mismo año, mes y día. El número impar del código de secuencia se asigna a los hombres y incluso los números se asignan a las mujeres.
5. Código de verificación
(1) La fórmula de suma ponderada para el código de ontología de diecisiete dígitos
S = sum (ai * wi), i = 0, ..., 16, primera suma de pesos de los primeros 17 dígitos
AI: indica el valor de número del número de tarjeta de identificación en la posición I-Th.
WI: representa el factor de ponderación en la posición I-Th.
7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
(2) Modo de cálculo
Y = mod (s, 11)
(3) Obtenga el código de verificación correspondiente a través del módulo
Y: 0 1 2 3 4 5 6 7 8 9 10
Código de verificación: 1 0 x 9 8 7 6 5 4 3 2
Es decir, si el resto se obtiene como 1, el último bit de verificación P debe ser el 0 correspondiente.
Número de 15 dígitos:
aabbccyymmddxxs
Número de 18 dígitos:
aabbccyyyymmddxxsp
2. Código de dirección
The first 6 digits of the ID card are administrative division codes (referred to as digital codes) descriptions (refer to "GB/T 2260-2007 Administrative Division Codes of the People's Republic of China"): The principle and structure analysis of the compilation of this digital code adopts a three-layer six-digit hierarchical code structure, which represents the provinces (autonomous regions, municipalities directly under the central government, special administrative regiones), ciudades (regiones, prefecturas autónomas, ligas) y condados (condados autónomos, ciudades a nivel de condado, pancartas, pancartas autónomas, distritos municipales, áreas forestales, distritos especiales) en mi país según la jerarquía.
(1) 1º y 2 ° dígitos: el código de la provincia donde se encuentra, que representa una provincia, una región autónoma, un municipio directamente bajo el gobierno central y una región administrativa especial.
Provincial and municipal code table: { 11: "Beijing", 12: "Tianjin", 13: "Hebei", 14: "Shanxi", 15: "Inner Mongolia", 21: "Liaoning", 22: "Jilin", 23: "Heilongjiang", 31: "Shanghai", 32: "Jiangsu", 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: "Guizh "Yunnan", 54: "Tibet", 61: "Shaanxi", 62: "Gansu", 63: "Qinghai", 64: "Ningxia", 65: "Xinjiang", 71: "Taiwán", 81: "Hong Kong", 82: "Macao", 91: "óxido"}}}
(2) El Código de la Ciudad de nivel de nivel provincial (condado), que representa el código resumido de los distritos y condados bajo la jurisdicción de la ciudad, la región, la prefectura autónoma, la alianza y la municipio directamente bajo el gobierno central y el código resumido de las divisiones administrativas de nivel condado directamente bajo la provincial (región autónoma).
"01 ~ 20, 51 ~ 70 significa una ciudad, y los municipios directamente bajo el gobierno central dicen que 01 significa una ciudad, y después de 02 significa un condado de suburbios dentro de la jurisdicción del gobierno municipal;
"21 ~ 50 significa regiones, prefecturas autónomas y alianzas;
“90 representa el Código de resumen de las divisiones administrativas a nivel del condado directamente bajo la provincia (región autónoma).
(3) Dígitos 5 y 6: el Código del Condado de nivel de prefectura (ciudad), que indica un condado, condado autónomo, ciudad a nivel de condado, pancarta, pancarta autónoma, distrito municipal, área forestal y distrito especial.
"01 ~ 20 medios ciudades a nivel del condado bajo la jurisdicción de la ciudad, región (prefecturas autónomas, ligas) bajo la jurisdicción de ciudades a nivel de condado, distritos especiales municipales y divisiones administrativas a nivel de condado directamente bajo la provincia (región autónoma). 01 generalmente significa el código de resumen de la jurisdicción;
"21 ~ 80 significa un condado, condado autónomo, pancarta, pancarta autónomo, área forestal y zona especial regional;
"81 ~ 99 significa que la provincia (región autónoma) tiene una ciudad a nivel del condado bajo su jurisdicción.
3. Otros
Número de identificación de 15 dígitos:
Los dígitos 7 y octavo son el año de nacimiento (dos dígitos, representados por los últimos dos dígitos del año).
No. 9 y 10 son el mes de nacimiento.
El 11 y 12 representan la fecha de nacimiento.
Los bits 13 y 14 son los códigos secuenciales, este es un número aleatorio.
El décimo dígito representa el género, el número impar es masculino y el número par es femenino.
Número de identificación de 18 dígitos:
El séptimo, octavo, noveno y 10 es el año de nacimiento (cuatro dígitos).
No. 11 y 12 son los meses de nacimiento.
Los 13 y 14 representan la fecha de nacimiento.
Los bits 15 y 16 son los códigos de secuencia.
La posición 17 representa el género, los números impares son hombres y incluso los números son mujeres.
El último bit es el bit de verificación.
4. Ejemplo de código JS
var idcardnoutil = { /*provincia, tabla de código municipal* / province ycitys: {11: "beijing", 12: "tianjin", 13: "hebei", 14: "shanxi", 15: "interior Mongolia ", 21:" Liaoning ", 22:" Jilin ", 23:" Heilongjiang ", 31:" Shanghai ", 32:" Jiangsu ", 33:" Zhejiang ", 34, 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:" Taiwán ", 81:" Hong Kong ", 82:" Macao ", 91:" Extranjero "}, /*Cada factor de ponderación* /Powers: [" 7 "," 9 "," 10 "," 5 "," 8 "," 4 "," 2 "," 1 "," 6 "," 3 "," 7 "," 9 "," 10 "," 5 "," 8 ", 4" "," 2 ", /*no. 18º código de calculación*/ paritybit: ["1", "0", "x", "9", "8", "7", "6", "5", "4", "3", "2"],/*género*/ género: {masculino: "masculino", femenino: "femenino"},/*verificar el código de direcciones*/ checkadd: function (function (direccionalcode)) /^=1-9font>/d{5}$/.test(addressCode); if (! chech) devuelve falso; if (idcardnoutil.ProvinceAndCitys [parseInt (direccionalCode.substring (0,2))]) {return true; } else {return false; }},/*Código de fecha de verificación*/checkbirthdaycode: function (birdaycode) {var check = /^[1-9font>/d{3}(cE11-9font>)(1–0-2font>))(0§-9font>)(barfontNefontNo0-9font>)(3§1font>))/.test(bircode); if (! chech) devuelve falso; 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 = nueva fecha (aaa yyyy, mm-1, dd); if (xData> new Date ()) {return false; // El cumpleaños no puede ser mayor que la fecha actual} else if ((xData.getTlyArtyEar () == yyyy) && (xData.getMonth () == mm - 1) && (xData.getDate () == dd)) {return true; } else {return false; }}, /*Calcule el código de calibración* / getParityBit: function (idcardno) {var id17 = idcardno.substring (0,17); /*Ponderado*/ var potencia = 0; for (var i = 0; i <17; i ++) {power+= parseInt (id17.charat (i), 10) * parseInt (idcardnoutil.powers [i]); } /*Modelo* / var mod = potencia % 11; return idcardnoutil.paritybit [mod]; }, /*Verificar el código de verificación* / checkParityBit: function (idcardno) {var paritybit = idcardno.charat (17) .ToUpperperCase (); if (idcardnoutil.getParityBit (idcardno) == paritybit) {return true; } else {return false; }},/*Verifique el número de identificación de 15 bits o 18 bits*/checkidCardNo: function (idcardno) {// verificación básica del número de ID de 15 bits y 18 bits var check = /^/d] {15h}|(/d /17}(/d|x|x))/.test(idCardno); if (! chech) devuelve falso; // juzga la longitud para ser de 15 bits o 18 bits if (idcardno.length == 15) {return idcardnoutil.check15idCardno (idcardno); } else if (idcardno.length == 18) {return idcardnoutil.check18idCardno (idcardno); } else {return false; }}, // verifique el número de identificación de 15 dígitos check15IDCardNO: function (idcardno) {// verificación básica del número de identificación de 15 dígitos var check = /^=1-9font>/d =7h}((0§1-9font>)(1[0-2font>))((0§-9font>)(§-2fontamentosado-9font>)(3–0-1font>))/d =3}$/.test(idcardno); if (! chech) devuelve falso; // verifique el código de dirección var direccióncode = idcardno.substring (0,6); check = IdCardnoutil.CheckAddressCode (DirectScode); if (! chech) devuelve falso; var birddaycode = '19' + idcardno.substring (6,12); // Verifique el código de la fecha de retorno IDCARDNOUTIL.CHECKBIRTHDAYCODE (BirdayCode); }, // verifique el número de identificación de 18 dígitos check18idCardno: function (idcardno) {// verificación de formato básico del número de identificación de 18 dígitos var check = /^=1-9font>/d{5hhing1-9font>/d{3h}( 0 ,1-9font>)|(1–0-2font>)(cl0bar1-9font>)(barfontnontize sor-9font>)|(3–0-1font>))/d{3}(/d|x|x)/.Test(idCardno); if (! chech) devuelve falso; // verifique el código de dirección var direccióncode = idcardno.substring (0,6); check = IdCardnoutil.CheckAddressCode (DirectScode); if (! chech) devuelve falso; // Verifique el código de la fecha var birddaycode = idcardno.substring (6,14); check = IdCardnoutil.CheckBirthDayCode (BirdayCode); if (! chech) devuelve falso; //Checkcardnoutil.checkparitybit(idcardno); }, formatDateCn: function (día) {var yyyy = day.substring (0,4); var mm = day.substring (4,6); var dd = day.substring (6); return yyyy + '-' + mm + '-' + dd; }, // Obtener información getIdCardInfo: function (idcardno) {var idcardinfo = {género: "", // cumpleaños de género: "" // fecha de nacimiento (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; } else {idcardinfo.gender = idcardnoutil.genders.male; }} else if (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; } else {idcardinfo.gender = idcardnoutil.genders.male; }} return IdCardInfo; }, /*18 bit a 15 bit* / getId15: function (idcardno) {if (idcardno.length == 15) {return idcardno; } else if (idcardno.length == 18) {return idcardno.substring (0,6) + idcardno.substring (8,17); } else {return null; }}, /*15 bit a 18 bit* / getId18: function (idcardno) {if (idcardno.length == 15) {var id17 = idcardno.substring (0,6) + '19' + idcardno.substring (6); var paritybit = idcardnoutil.getParityBit (ID17); return id17 + paritybit; } else if (idcardno.length == 18) {return idcardno; } else {return null; }}}; // verificación del número de tarjeta de identidad jquery.validator.addmethod ("idcardno", function (valor, elemento) {return this.optional (element) || idcardnoutil.checkidcardno (valor);}, especifique un número de identificación válido ");; // Obtener información de la tarjeta de identificación var idcardinfo = idcardnoutil.getIdCardInfo (idcardno); alerta (idcardinfo.gender + "|" + idcardinfo.birthday); Nota: Al ingresar y determinar si la misma tarjeta de identificación ya existe en la base de datos (1) si está ingresando una ID de 15 bits: primero averigüe si existe la ID de 15 bits. Si no existe, debe convertir la tarjeta de identificación de 15 bits en una tarjeta de identificación de 18 bits. Si todavía no existe, puede ingresar al sistema. (2) Si está ingresando una identificación de 18 bits: primero averigüe si existe la identificación de 18 bits. Si no existe, debe convertir la tarjeta de identificación de 18 bits en una tarjeta de identificación de 15 bits. Si todavía no existe, puede ingresar al sistema. Si encuentra la tarjeta de identificación de 15 bits correspondiente, debe actualizar los 15 bits a 18 bits.El ejemplo simple anterior de verificación JS de tarjetas de identificación de 15 y 18 bits es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.