udv-ec
Version:
Módulo para verificar números de cédulas y RUCs válidas del Ecuador
94 lines • 3.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.verificarRuc = exports.verificarCedula = void 0;
/**
* Comprueba si un número de cédula es válido
* @param {string} cedula - número de cedula a comprobar
* @return {boolean} - retorna true si el número es válido, false de ser inválido
*/
function verificarCedula(cedula) {
try {
var auxCedula = cedula;
if (auxCedula.length !== 10) {
return false;
}
var primeros2 = +auxCedula.substr(0, 2);
if (primeros2 < 1 || primeros2 > 24) {
return false;
}
var digitoVerificador = +(auxCedula.split('').slice(-1));
var coeficientes_1 = [2, 1, 2, 1, 2, 1, 2, 1, 2];
var sumaT = auxCedula.substr(0, 9).split('').reduce(function (p, c, i) {
var aux = 0;
var mult = (+c) * coeficientes_1[i];
aux = mult > 9 ? mult - 9 : mult;
return p + aux;
}, 0);
var residuo = sumaT % 10;
return (residuo === 0) ? (digitoVerificador === 0) : ((10 - residuo) === digitoVerificador);
}
catch (error) {
return false;
}
}
exports.verificarCedula = verificarCedula;
function verificarPJ(ruc) {
try {
var coeficientes_2 = [4, 3, 2, 7, 6, 5, 4, 3, 2];
var digitoVerificador = +(ruc.split('').slice(-1));
var multiplicacion = ruc.substr(0, 9).split('')
.reduce(function (p, c, i) { return ((p) + ((+c) * coeficientes_2[i])); }, 0);
var residuo = multiplicacion % 11;
return (residuo === 0) ? (digitoVerificador === 0) : (11 - residuo) === digitoVerificador;
}
catch (error) {
return false;
}
}
function verificarIP(ruc) {
try {
var coeficientes_3 = [3, 2, 7, 6, 5, 4, 3, 2];
var digitoVerificador = +(ruc.split('').slice(-1));
var multiplicacion = ruc.substr(0, 8).split('')
.reduce(function (p, c, i) { return ((p) + ((+c) * coeficientes_3[i])); }, 0);
var residuo = multiplicacion % 11;
return (residuo === 0) ? (digitoVerificador === 0) : (11 - residuo) === digitoVerificador;
}
catch (error) {
return false;
}
}
/**
* Comprueba sin un número de RUC es válido
* @param {string} ruc - número de ruc a comprobar
* @return {boolean} - retorna true si el número es válido, false de ser inválido
*/
function verificarRuc(ruc) {
try {
var auxRuc = ruc;
if (auxRuc.length !== 13)
return false;
var tresUltimosDigitos = auxRuc.substr(10, 3);
if (!(new RegExp(/^[0-9][0-9][1-9]$/)).test(tresUltimosDigitos))
return false;
var tercerDigito = auxRuc[2];
// PERSONA NATURAL
if (new RegExp(/^[0-5]$/).test(tercerDigito)) {
return verificarCedula(auxRuc.substr(0, 10));
}
// INSTITUCIÓN PÚBLICA
if (new RegExp(/^6$/gm).test(tercerDigito)) {
return verificarIP(auxRuc.substr(0, 9));
}
// PERSONA JURÍDICA
if (new RegExp(/^9$/gm).test(tercerDigito)) {
return verificarPJ(auxRuc.substr(0, 10));
}
return false;
}
catch (error) {
return false;
}
}
exports.verificarRuc = verificarRuc;
//# sourceMappingURL=index.js.map