proyecto-web/frontend/src/Rut.js

63 lines
1.1 KiB
JavaScript

function limpiar(rut) {
rut = rut.replace(/\./g, '').replace(/-/g, '');
rut = rut.toLowerCase();
return rut;
}
function validar(rut) {
rut = limpiar(rut);
let dv = rut.substr(rut.length - 1, 1);
rut = rut.substr(0, rut.length - 1);
if (isNaN(rut)) {
return false;
}
if (rut > 50000000) {
return false;
}
if (dv === generarVerificador(rut)) {
return true;
}
else {
return false;
}
}
function generarVerificador(rut) {
let multiplier = 2;
let sum = 0;
let remainder = 0;
let division = 0;
for (let i = rut.length - 1; i >= 0; i--) {
sum = sum + (rut.substr(i, 1) * multiplier);
multiplier++;
if (multiplier === 8) {
multiplier = 2;
}
}
division = Math.floor(sum / 11);
division = division * 11;
remainder = sum - division;
if (remainder !== 0) {
remainder = 11 - remainder;
}
if (remainder === 10) {
return "k";
}
else {
return remainder.toString(10);
}
}
module.exports = {
limpiar,
validar
};