Tecnología

Cómo Validar RUT Chileno en JavaScript (Código Completo 2026)

Implementa la validación de RUT chileno en JavaScript con el algoritmo Módulo 11. Código listo para usar en formularios web, con función de formato incluida.

2026-06-21 4 min lectura Rutificador Chile

Validar un RUT chileno en JavaScript requiere implementar el algoritmo Módulo 11 y el formateo con puntos y guión. Aquí tienes el código completo listo para usar en cualquier formulario web.

Función de validación completa

function validarRut(rut) {
  // Limpiar y normalizar
  const clean = rut.replace(/[^0-9kK]/g, '').toUpperCase();
  if (clean.length < 2) return false;
  
  const body = clean.slice(0, -1);
  const dv = clean.slice(-1);
  
  // Calcular dígito verificador
  const serie = [2,3,4,5,6,7];
  const suma = body.split('').reverse()
    .reduce((acc, d, i) => acc + parseInt(d) * serie[i % 6], 0);
  const resto = 11 - (suma % 11);
  
  let dvEsperado;
  if (resto === 11) dvEsperado = '0';
  else if (resto === 10) dvEsperado = 'K';
  else dvEsperado = String(resto);
  
  return dv === dvEsperado;
}

// Formatear RUT con puntos y guión
function formatearRut(rut) {
  const clean = rut.replace(/[^0-9kK]/g, '').toUpperCase();
  const body = clean.slice(0, -1);
  const dv = clean.slice(-1);
  return body.replace(/\B(?=(\d{3})+(?!\d))/g, '.') + '-' + dv;
}

// Ejemplos
validarRut('12345678-5');  // true
validarRut('12345678-9');  // false
formatearRut('123456785'); // "12.345.678-5"

Validación en tiempo real en un formulario

document.getElementById('rut').addEventListener('input', function(e) {
  const input = e.target;
  const valor = input.value;
  
  // Formatear mientras escribe
  if (valor.replace(/[^0-9kK]/g, '').length > 1) {
    input.value = formatearRut(valor);
  }
  
  // Mostrar feedback visual
  const esValido = validarRut(valor);
  input.classList.toggle('border-green-500', esValido);
  input.classList.toggle('border-red-500', !esValido && valor.length > 3);
});

Preguntas frecuentes

¿Esta función maneja el caso del RUT con K?

Sí. La función acepta tanto K mayúscula como k minúscula y las normaliza a mayúscula para la comparación.

¿Funciona con RUTs de 7 y 8 dígitos?

Sí. La función funciona para cualquier largo de cuerpo, desde los RUT más bajos (1 dígito) hasta los más altos (8 dígitos).

Busca el RUT de cualquier persona en Chile

El Rutificador de nombreyrut.com es gratuito y tiene millones de registros públicos.