Código Open Source
Validación de RUT en JavaScript y TypeScript
Función moderna, ligera (menos de 1 KB) y sin dependencias externas para validar cualquier RUT chileno en el front-end o en backend con Node.js / Bun.
validateRut.js
/**
* Valida un RUT chileno con el Algoritmo Módulo 11
* @param {string} rut - RUT con o sin puntos y guión (ej: '12.345.678-5')
* @returns {boolean}
*/
export function isValidRut(rut) {
if (!rut || typeof rut !== 'string') return false;
// Limpiar caracteres
const cleanRut = rut.replace(/[^0-9kK]/g, '').toUpperCase();
if (cleanRut.length < 2) return false;
const body = cleanRut.slice(0, -1);
const dv = cleanRut.slice(-1);
if (!/^\d+$/.test(body)) return false;
// Algoritmo Módulo 11
let sum = 0;
let multiplier = 2;
for (let i = body.length - 1; i >= 0; i--) {
sum += parseInt(body.charAt(i), 10) * multiplier;
multiplier = multiplier === 7 ? 2 : multiplier + 1;
}
const remainder = sum % 11;
const expectedDv = 11 - remainder;
let calculatedDv = String(expectedDv);
if (expectedDv === 11) calculatedDv = '0';
if (expectedDv === 10) calculatedDv = 'K';
return dv === calculatedDv;
}
// Ejemplo de uso:
console.log(isValidRut('10.000.013-K')); // true
console.log(isValidRut('12345678-5')); // true
console.log(isValidRut('10.000.013-0')); // false
Publicidad
Espacio Publicitario AdSense (728x90)