Cuando creamos un sitio web de Internet, a menudo usamos nuestro número de identificación al registrar información personal. Necesitamos verificar nuestra tarjeta de identificación, de lo contrario, otros lo pasarán simplemente ingresando un número, lo que le hace sentir que este sitio web está muy hecho.
Hay reglas para el número de identificación.
Estructura y forma
1. La estructura del número
El número de ciudadanía es un código de combinación de características, que consiste en un código de ontología 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.
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
De acuerdo con los primeros códigos numéricos de diecisiete dígitos, el código de verificación calculado de acuerdo con el ISO 7064: 1983. Mod 11-2 Código de verificación.
Método de cálculo
1. Multiplique el número de 17 dígitos del número de identificación anterior por diferentes coeficientes. Los coeficientes desde la primera posición hasta la decimoséptima posición son: 7-9-10-5-8-4-2-1-1-6-3-7-7-9-10-5-8-4-2.
2. Agregue el resultado de multiplicar estos números y coeficientes de 17 dígitos.
3. Use la adición y divida por 11 para ver cuál es el resto?
4. El resto solo puede tener 11 números: 0-1-2-3-4-5-6-7-8-9-10. El número de la última tarjeta de identificación correspondiente es 1-0-x-9-8-7-6-5-4-3-2.
5. De lo anterior, sabes que si el resto es 3, el dígito 18 de la tarjeta de identificación aparecerá 9. Si el número correspondiente es 2, el último número de la tarjeta de identificación es el número romano x.
Por ejemplo: el número de identificación de un hombre es [53010219200508011x], veamos si esta tarjeta de identificación es una tarjeta de identificación legal.
Primero obtenemos la suma del producto de los primeros 17 bits [(5*7)+(3*9)+(0*10)+(1*5)+(0*8)+(2*4)+(1*2)+(9*1)+(2*6)+(0*3)+(0*7)+(5*9)+(0*10)+(8*5)+(0*8)+(1*4) 189, y luego dividir 189 al 11 es 189/11 = 17 ---- 2, es decir, el resto de los números son 2. Finalmente, a través de las reglas correspondientes, puede saber que el código de verificación correspondiente al resto 2 es X. Por lo tanto, se puede determinar que este es el número de identificación correcto.
Lo anterior se extrae de la Enciclopedia de Baidu.
Esta es una imagen de información relacionada que se encuentra en línea.
Según la información conocida, podemos escribir la implementación interna de este método en JS. La primera verificación de 17 bits es más fácil de implementar, por lo que no diré mucho y me concentraré en el código de verificación del último dígito.
La copia del código es la siguiente:
// verificación de número de identificación
función isidcard (cardid) {
// Expresión regular de la tarjeta de identidad (18 bits)
var isidcard2 =/^[1-9]/d {5} (19/d {2} | [2-9]/d {3}) ((0/d) | (1 [0-2])) ((0 | 1 | 2]/d) | 3 [0-1] (/d {4} |/d {3} x) $/i;
var stard = "10x98765432"; // El número de la última tarjeta de identificación
var primero = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; // 1-17 coeficiente
var sum = 0;
if (! isidcard2.test (cardid)) {
devolver falso;
}
var año = cardid.substr (6, 4);
var mes = cardid.substr (10, 2);
var day = cardid.substr (12, 2);
var cumpleaños var = cardid.substr (6, 8);
if (cumpleaños! = dataToString (nueva fecha (año + '/' + mes + '/' + día))) {// verifique si la fecha es legal
devolver falso;
}
para (var i = 0; i <cardid.length - 1; i ++) {
sum += cardid [i] * primero [i];
}
Resultado var = suma % 11;
var último = stard [resultado]; // El último número de identificación calculado
if (cardid [cardid.length - 1] .ToUpperCase () == Last) {
devolver verdadero;
} demás {
devolver falso;
}
}
// Fecha a la cadena Formato de fecha de retorno 2008080808
función dataToString (date) {
if (fecha instancia de fecha) {
var año = date.getTlyEar ();
var mes = date.getMonth () + 1;
mes = mes <10? '0' + mes: mes;
var day = date.getDate ();
día = día <10? '0' + día: día;
Año de retorno + mes + día;
}
devolver '';
}
Aquí solo se verifican tarjetas de identificación de 18 dígitos, y no se pueden usar tarjetas de identificación de primera generación de 15 dígitos.
Aquí también verificamos la legalidad de las fechas, como fechas ilegales como 0230, 0431, y la verificación no se aprobará.
También podemos agregar este método a jQuery Validate para una fácil verificación.
Escribir un método de verificación jQuery de jQuery personalizado
La copia del código es la siguiente:
// verificación de número de identificación
jQuery.validator.addmethod ("isidcard",
función (valor, elemento) {
devuelve esto.Optional (elemento) || (isidcard (valor));
},
"¡El número de tarjeta de identidad es ilegal!");
Tengamos una demostración simple para ver cómo funciona.
La copia del código es la siguiente:
<! Doctype html>
<html>
<Evista>
<meta http-equiv = "content-type" content = "text /html; charset = utf-8" />
<title>
Verificación de número de identificación
</title>
<script src = "http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js">
</script>
<script src = "http://www.w3cschool.cc/try/demo_source/static/js/jquery.validate.js">
</script>
<script type = "text/javaScript">
$ (function () {
$ ("#form1"). Validate ({
normas: {
txtidcard: "isidcard"
}
});
});
// verificación de número de identificación
función isidcard (cardid) {
// Expresión regular de la tarjeta de identidad (18 bits)
var isidcard2 =/^[1-9]/d {5} (19/d {2} | [2-9]/d {3}) ((0/d) | (1 [0-2])) ((0 | 1 | 2]/d) | 3 [0-1] (/d {4} |/d {3} x) $/i;
var stard = "10x98765432"; // El número de la última tarjeta de identificación
var primero = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; // 1-17 coeficiente
var sum = 0;
if (! isidcard2.test (cardid)) {
devolver falso;
}
var año = cardid.substr (6, 4);
var mes = cardid.substr (10, 2);
var day = cardid.substr (12, 2);
var cumpleaños var = cardid.substr (6, 8);
if (cumpleaños! = dataToString (nueva fecha (año+'/'+mes+'/'+día))) {// verifique si la fecha es legal
devolver falso;
}
para (var i = 0; i <cardid.length - 1; i ++) {
sum += cardid [i] * primero [i];
}
Resultado var = suma % 11;
var último = stard [resultado]; // El último número de identificación calculado
if (cardid [cardid.length - 1] .ToUpperCase () == Last) {
devolver verdadero;
} demás {
devolver falso;
}
}
// Fecha a la cadena Formato de fecha de retorno 2008080808
función dataToString (date) {
if (fecha instancia de fecha) {
var año = date.getTlyEar ();
var mes = date.getMonth () + 1;
mes = mes <10? '0' + mes: mes;
var day = date.getDate ();
día = día <10? '0' + día: día;
Año de retorno + mes + día;
}
devolver '';
}
// Verificación del número de identificación de JQuery Validate
jQuery.validator.addmethod ("isidcard",
función (valor, elemento) {
devuelve esto.Optional (elemento) || (isidcard (valor));
},
"¡El número de tarjeta de identidad es ilegal!");
</script>
</ablo>
<Body>
<Form ID = "Form1" Method = "Get" Action = "">
<input type = "text" id = "txtidcard" name = "txtidcard" />
<p>
<input type = "enviar" valor = "enviar" />
</p>
</form>
</body>
</html>
Verifique con el número de identificación 53010219200508011x provisto en la enciclopedia de Baidu
Se puede aprobar la verificación, intente cambiar x a 0
Si la verificación falla, ¡el método de verificación que escribimos es exitoso! Si no lo cree, intente usar su número de identificación. Resulta que usé JS para verificar el número de identificación tan fácil.
Lo anterior se trata de este artículo, espero que les guste.