Estos días he estado un poco alejado del Blog, me he encontrado manteniendo una red de blogs y bueno, además de aprender y mejorar mis habilidades programando Back-end en JavaScript con Node.js
Pero mientras tanto he estado divirtiéndome un poco con JavaScript puro desde el Front-End y usando varias referencias he hecho esta herramienta para validar un RUT Chileno con JavaScript.
En la búsqueda de soluciones ya hechas, me encontré con el pequeño paquete creado por Jesús Lobos y que tiene en su repositorio de GitHub «rutjs» El cual me pareció que era justo lo que necesitaba, de ese paquete tomé dos funciones, la de limpiar la cadena de texto y la de darle formato.
Hace tres cosas súper simples, limpiar la cadena de Texto para ser analizada, Formatear el RUT de la siguiente forma, por ejemplo, «n.nnn.nnn-n» y también incluye un método para validarlo.
El método para Validar el RUT más bien lo desarrollé viendo otros ejemplos y este es el resultado: Validar RUT Chileno Online.

Función en JavaScript para validar el RUT Chileno.
La siguiente función es la principal del Script de JavaScript desarrollado para Validar el RUT en la herramienta y muestra el paso a paso para verificar los datos ingresados en el Input que recibe el RUT.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | function checkRut(rut) { if (rut.value.length <= 1) { alerta.classList.remove('alert-success', 'alert-danger'); alerta.classList.add('alert-info'); mensaje.innerHTML = 'Ingrese un RUT en el siguiente campo de texto para validar si es correcto o no'; } // Obtiene el valor ingresado quitando puntos y guión. var valor = clean(rut.value); // Divide el valor ingresado en dígito verificador y resto del RUT. cuerpo = valor.slice(0, -1); dv = valor.slice(-1).toUpperCase(); // Separa con un Guión el cuerpo del dígito verificador. rut.value = format(rut.value); // Si no cumple con el mínimo ej. (n.nnn.nnn) if (cuerpo.length < 7) { rut.setCustomValidity("RUT Incompleto"); alerta.classList.remove('alert-success', 'alert-danger'); alerta.classList.add('alert-info'); mensaje.innerHTML = 'Ingresó un RUT muy corto, el RUT debe ser mayor a 7 Dígitos. Ej: x.xxx.xxx-x'; return false; } // Calcular Dígito Verificador "Método del Módulo 11" suma = 0; multiplo = 2; // Para cada dígito del Cuerpo for (i = 1; i <= cuerpo.length; i++) { // Obtener su Producto con el Múltiplo Correspondiente index = multiplo * valor.charAt(cuerpo.length - i); // Sumar al Contador General suma = suma + index; // Consolidar Múltiplo dentro del rango [2,7] if (multiplo < 7) { multiplo = multiplo + 1; } else { multiplo = 2; } } // Calcular Dígito Verificador en base al Módulo 11 dvEsperado = 11 - (suma % 11); // Casos Especiales (0 y K) dv = dv == "K" ? 10 : dv; dv = dv == 0 ? 11 : dv; // Validar que el Cuerpo coincide con su Dígito Verificador if (dvEsperado != dv) { rut.setCustomValidity("RUT Inválido"); alerta.classList.remove('alert-info', 'alert-success'); alerta.classList.add('alert-danger'); mensaje.innerHTML = 'El RUT ingresado: ' + rut.value + ' Es <strong>INCORRECTO</strong>.'; return false; } else { rut.setCustomValidity("RUT Válido"); alerta.classList.remove('d-none', 'alert-danger'); alerta.classList.add('alert-success'); mensaje.innerHTML = 'El RUT ingresado: ' + rut.value + ' Es <strong>CORRECTO</strong>.'; return true; } } |
Conclusión Validaro de RUT Chileno.
Como conclusión puedo decir que fue un ejercicio bastante «simple» pero que me entregó muchos conocimientos nuevos. Desarrollar en JavaScript tiene sus complejidades, como por ejemplo, su sintaxis poco «estricta», pero eso igual lo considero un beneficio, porque permite estar más atento a los ciclos de vida de las variables, entre otras cosas.
Repositorio del proyecto.
Este mini-proyecto se encuentra alojado en el siguiente Repositorio: Validador RUT Chileno.