UNPKG

prettyutils

Version:

Utility functions to parse, validate and generate data

52 lines 1.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); class RutUtil { constructor() { this.clean = (rut) => { if (!rut) return ''; return rut.replace(/^0+|[^0-9kK]+/g, '').toUpperCase(); }; this.format = (rut) => { if (!this.clean(rut)) return ''; rut = this.clean(rut); let result = rut; if (rut.length > 1) { result = rut.slice(-4, -1) + '-' + rut.substr(rut.length - 1); for (let i = 4; i < rut.length; i += 3) { result = rut.slice(-3 - i, -i) + '.' + result; } } return result; }; this.calculateDv = (rut) => { if (!this.clean(rut)) return ''; let suma = 0; const rutReversa = this.clean(rut).split('').reverse(); for (let i = 0, j = 2; i < rutReversa.length; i++, j < 7 ? j++ : (j = 2)) { suma += parseInt(rutReversa[i]) * j; } const resultado = 11 - (suma % 11); if (resultado === 11) return '0'; if (resultado === 10) return 'K'; return String(resultado); }; this.validate = (rut) => { const rutSinFormato = this.clean(rut); if (rutSinFormato) { const rutSinDv = rutSinFormato.slice(0, -1); const rutDv = rutSinFormato.split('').pop().toUpperCase(); return this.calculateDv(rutSinDv) === rutDv; } else { return false; } }; } } exports.default = RutUtil; //# sourceMappingURL=Rut.js.map