Menos tonterías, solo pon el código directamente, el análisis en los comentarios es muy claro, por lo que no hay BB aquí.
La copia del código es la siguiente:
/*
Según las disposiciones sobre los números de identidad de la ciudadanía en el estándar nacional GB 11643-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 digital de diecisiete dígitos y un código de verificación de un dígito. 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.
El código de dirección representa el código de división administrativa del condado (ciudad, pancarta y distrito) donde se encuentra la residencia permanente del objeto codificado.
El código de fecha de nacimiento representa el año, mes y día del nacimiento del objeto codificado, y el año está representado por cuatro dígitos, y no hay separador entre el año, el mes y el día.
El código de secuencia representa el número de secuencia asignado a las personas nacidas en el mismo año, mes y día dentro del área identificada por el mismo código de dirección. Los números impares de los códigos de pedido se asignan a los hombres y incluso los números se asignan a las mujeres.
El código de verificación es un código de verificación calculado basado en los primeros diecisiete códigos de dígitos y de acuerdo con el código de verificación de ISO 7064: 1983.Mod 11-2.
Método de cálculo de la fecha de nacimiento.
El código de tarjeta de identificación del bit primero expande el año de nacimiento a 4 bits, simplemente agregando un 19 o 18, que incluye a todas las personas nacidas entre 1800 y 1999;
Los nacidos después del Año Nuevo deben tener 18 años, y no hay tal preocupación. En cuanto a los nacidos hace 1.800 años, no debería haber un número de identificación en ese momento, ⊙⊙b Khan ...
La siguiente es la expresión regular:
Fecha de nacimiento 1800-2099 (18 | 19 | 20)?/D {2} (0 [1-9] | 1 [12]) (0 [1-9] | [12]/d | 3 [01])
ID CARD expresión regular/^/d {6} (18 | 19 | 20)?/D {2} (0 [1-9] | 1 [12]) (0 [1-9] | [12]/d | 3 [01])/D {3} (/d | X) $/i
Reglas de verificación de bits Código de dirección de 6 dígitos + 6 dígitos Fecha de nacimiento + Número de secuencia de 3 dígitos
Reglas de verificación de bits Código de dirección de 6 bits + Fecha de nacimiento de 8 bits + Número de secuencia de 3 bits + Bit de verificación de 1 bits
Fórmula de regla de dígitos de verificación: ∑ (ai × wi) (mod 11)……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
En fórmula (1):
I --- Indica el número de secuencia número del carácter de número desde la izquierda, incluido el código de verificación;
AI ---- representa el valor de caracteres numérico en la posición I-Th;
WI ----- muestra el factor de ponderación en la posición I-Th, y su valor se calcula en función de la fórmula WI = 2^(N-1) (Mod 11).
i 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
Wi 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1
*/
// Verificación de la legalidad del número de identificación
// admite números de identificación de 15 dígitos y 18 dígitos
// Codificación de dirección de soporte, fecha de nacimiento y verificación de los dígitos de cheques
función IdentityCodeValid (Code) {
var city = {11: "Beijing", 12: "Tianjin", 13: "Hebei", 14: "Shanxi", 15: "Interior 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: "Yun nan ", 54:" Tíbet ", 61:" Shaanxi ", 62:" Gansu ", 63:" Qinghai ", 64:" Ningxia ", 65:" Xinjiang ", 71:" Taiwan ", 81:" Hong "Hong" Kong ", 82:" Macao ", 91:" extranjero "};
var tip = "";
var pass = true;
if (! Code ||
TIP = "Error de formato de número de tarjeta de identidad";
pase = false;
}
else if (! city [code.substr (0,2)]) {
TIP = "Error de codificación de dirección";
pase = false;
}
demás{
// La tarjeta de identificación de 18 dígitos debe verificarse para el último bit de verificación
if (code.length == 18) {
code = code.split ('');
// ∑ (ai × wi) (mod 11)
// Factor de ponderación
factor var = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
// bit de calibración
var parity = [1, 0, 'x', 9, 8, 7, 6, 5, 4, 3, 2];
var sum = 0;
var ai = 0;
var wi = 0;
para (var i = 0; i <17; i ++)
{
ai = código [i];
wi = factor [i];
suma += ai * wi;
}
Var Last = Parity [sum % 11];
if (parity [sum % 11]! = código [17]) {
TIP = "Verifique el error de bit";
pase = false;
}
}
}
if (! pase) alerta (punta);
Pase de regreso;
}
var c = '130981199312253466';
var res = identitycodevalid (c);
¿Qué tal? Es un código de verificación de primer número de identificación muy completo. No es la misma dimensión que los otros códigos de verificación buscados en línea. Por favor, quítelo si lo necesita.