Soporte y Tecnología > Programación

¿Cómo calcular dígito verificador del DUI y NIT?

(1/11) > >>

Chero:
¿Alguien sabe cómo calcular el dígito verificador del DUI y NIT? Busqué en Google y no encontré nada.

Esto sería para verificar los números cuando se registra una persona en un programa/tarea de la U que me está tocando hacer.  No es un requisito que me hayan pedido, pero siempre he tenido curiosidad de cómo se hace.

JaiMe:
No se que queres decir con esto: cómo calcular el dígito verificador

pero podes verificar si los digitos siguen un formato predeterminado con expressiones regulares.

Por ejemplo el DUI creo que sigue este formato

12345678-1

Solo tendrias que evaluar la cadena de texto y hacer un test como este (en JavaScript):


--- Código: --- var regex = /^\d{8}-\d$/;
regex.test("12345678-1")       // true

regex.test("12345678")         // false
regex.test("123456789-1")      // false
regex.test("12345678-12")      // false
--- Fin del código ---

Varios lenguajes de programacion comparten la misma syntax para las expressiones regulares, con cambios minimos en la manera de instanciarlas y ejecutarlas.

Ahora, para el NIT, que sigue este formato 1234-123456-123-0, el processo seria bastante familiar y te lo dejo de tarea para que te familiarizes con las expressiones regulares.

pd: Yo no tengo ninguno de esos documentos, asi que no estoy seguro del formato

tekun:
creo que lo que chero busca es validar si un dui es válido o no....


adjunto un bloc de notas con el codigo de una funcion en pl para verificar eso... ahí están los procesos matematicos que se realizan, espero te sirva de algo

con los permisos de alberto, porque no puso sus términos legales de usar la función, es que lo comparto...

Jaru:
no soy muy bueno en pascual

alguien podria poner el algoritmo ya sacado?

Camus de Acuario:

--- Cita de: JaiMe en octubre 27, 2011, 08:32:57 am ---No se que queres decir con esto: cómo calcular el dígito verificador

pero podes verificar si los digitos siguen un formato predeterminado con expressiones regulares.

--- Fin de la cita ---
Lo que pasa es que para documentos de este tipo no solo siguen un patron o formato, sino que al final tienen un numero verificador que es calculado con referencia a los otros numeros, para valga la redundancia validar el número final.


--- Cita de: naruto en octubre 27, 2011, 04:42:40 pm ---no soy muy bueno en pascual

alguien podria poner el algoritmo ya sacado?

--- Fin de la cita ---
No es pascual, es PL/SQL, lenguaje de programacion con sentencias TSQL para oracle.

Para el del DUI el proceso que recuerdo es este:
-el numero que esta a la derecha del guion se conoce como digito verificador
-se coloca el numero sin guiones y con ceros a la izquierda
-deben ser 9 caracters
-se toman los primeros 8 caracteres (sin el digito verificador) y a cada uno se le multiplica por la posicion en la que se encuentra. Partiendo que la posicion 9 es el primer numero de la izquierda.
-se suman todos los resultados
-se hace un mod de la suma dividido por 10 (osea toma el remanente de esa division)
-Resta 10 menos el remanente de la division
-si la resta da 0 el DUI es correcto
-si la resta es igual al digito verificador el DUI es correcto
-si la resta es distinta al digito verificador el DUI es incorrecto

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa