Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@jrmoran
Created October 28, 2011 00:48
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save jrmoran/1321329 to your computer and use it in GitHub Desktop.
Save jrmoran/1321329 to your computer and use it in GitHub Desktop.
Verificacion DUI
/*
DUI = 00016297-5
Posiciones -> 9 8 7 6 5 4 3 2
DUI -> 0 0 0 1 6 2 9 7
DV = 5
sum: (9*0) + (8*0) + (7*0) + (6*1) + (5*6) + (4*2) + (3*9) + (2*7) = 85
residuo: (85 % 10) = 5
resta: 10 - residuo = 5
IF DV == Resta THEN true ELSE false
*/
var isDUI = function(str){
var regex = /(^\d{8})-(\d$)/,
parts = str.match(regex);
// verficar formato y extraer digitos junto al digito verificador
if(parts !== null){
var digits = parts[1],
dig_ve = parseInt(parts[2], 10),
sum = 0;
// sumar producto de posiciones y digitos
for(var i = 0, l = digits.length; i < l; i++){
var d = parseInt(digits[i], 10);
sum += ( 9 - i ) * d;
}
return dig_ve === 10 - ( sum % 10 );
}else{
return false;
}
};
isDUI('00016297-5'); // true
isDUI('12345678-1'); // false
isDUI('123456789-1'); // false
isDUI('12345678-12'); // false
@marlonorozco2009
Copy link

Hola gmelendezcr, como puedo ejecutar la funcion
quuiero probarlo en una caja de texto de un formulario, podrías orientarme por favor, mil gracias

@sel-anyeimar
Copy link

Hola, estoy intentando realizar el algoritmo para validar el NIT pero desconozco como realizar la operación para validar el ultimo digito, tendras alguna ayuda porfa

@gmelendezcr
Copy link

Hola, estoy intentando realizar el algoritmo para validar el NIT pero desconozco como realizar la operación para validar el ultimo digito, tendras alguna ayuda porfa

Desconozco si el NIT tiene dígito verificador, podrías probar con algunos números de ejemplo, si en dado caso lo tiene y es MOD10, la misma función te servirá.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment