Last active
August 27, 2022 04:24
-
-
Save robertoandres24/c8df5cd740e01a78adbe54af4a032d29 to your computer and use it in GitHub Desktop.
Validador ruc, dni Peru
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//let dni=''; | |
/*while(!(/^\d{8}[a-zA-Z]$/.test(dni))){ | |
dni = prompt("Introduzca un número de DNI: 8 números y una letra"); | |
}*/ | |
function validateDni(dni) { | |
//Se separan los números de la letra | |
var letraDNI = dni.substring(8, 9).toUpperCase(); | |
var numDNI = parseInt(dni.substring(0, 8)); | |
//Se calcula la letra correspondiente al número | |
var letras = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E', 'T']; | |
var letraCorrecta = letras[numDNI % 23]; | |
if(letraDNI!= letraCorrecta){ | |
console.log("Has introducido una letra incorrecta\nTu letra debería ser: " + letraCorrecta); | |
return false | |
} else { | |
console.log("Enhorabuena hemos podido validar tu DNI"); | |
return true | |
} | |
} | |
console.log(validateDni('43920792K')) | |
/* | |
** Validates RUC | |
*/ | |
function validarRuc(data) { | |
//Elimina cualquier caracter espacio o signos habituales y comprueba validez | |
var ruc = data.replace(/[-.,[\]()\s]+/g,"") | |
// Devuelve un booleano si es un RUC válido | |
// (deben ser 11 dígitos sin otro caracter en el medio) | |
//11 dígitos y empieza en 10,15,16,17 o 20 | |
if (!(ruc >= 1e10 && ruc < 11e9 | |
|| ruc >= 15e9 && ruc < 18e9 | |
|| ruc >= 2e10 && ruc < 21e9)) | |
return false; | |
for (var suma = -(ruc%10<2), i = 0; i<11; i++, ruc = ruc/10|0) | |
suma += (ruc % 10) * (i % 7 + (i/7|0) + 1); | |
return suma % 11 === 0; | |
} | |
console.log(validarRuc('20527237956')) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment