UNPKG

udv-ec

Version:

Módulo para verificar números de cédulas y RUCs válidas del Ecuador

94 lines 3.32 kB
"use strict"; 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