Validador de RUT chileno, con una función implementada el lenguaje JavaScript

Este es un validador de Rut Chileno con JavaScript, no recuerdo de donde saqué el original, pero lo modifiqué para incorporarlo en una colección de funciones reutilizables bajo el paquete Fn, traté de reducirlo lo más posible, creo que se puede achicar un poco más… pero sólo sería algo cosmético porque como está funciona bastante bien, sin más, les presento la función:

Para hace una prueba en vivo, hice esta implementación para que lo puedas probar en línea, está alojada en CODEPEN, y queda a tu libre disposición, no olvides de agradecer y si quieres también una mención si este trabajo te ha sido de ayuda.

See the Pen Valida Rut Chileno by Cesar Gonzalez (@donpandix) on CodePen.


Avatar

Cesar Gonzalez

Ingeniero Informático Universitario con más de 10 años de experiencia en el análisis y desarrollo de aplicaciones en plataformas web.   twitter: @donpandix

11 comentarios

Avatar

Tulio Show · agosto 28, 2015 a las 3:33 pm

Muy buen codigo, simple y corto, lo ideal… ahhh, y lo mejor es que funciona 😀

Avatar

Marcos Muñoz Leal · marzo 31, 2016 a las 12:18 pm

Hola se ve bonito pero lo realice y no me funciono, por casualidad no lo tienes comprimido para bajar? de antemano muchas gracias

Avatar

Jesus · marzo 9, 2017 a las 11:19 am

Cesar el script tira como inválidos estos RUTs: 96577310‐K, 89664200‐6, 96631520‐2, 89862200‐2, 93383000‐4, 96951280‐7,
Pero existen en SII, a que se debe, sabes algo al respecto?

    Avatar

    donpandix · marzo 9, 2017 a las 12:29 pm

    Hola Jesús:

    Gracias por reportar el problema, lo que ocasiona que el validador rechaze el rut, no tiene que ver con el algoritmo de cálculo sino mas bien con el caracter que separa la mantisa con el dígito verificador, en los Ruts que me mostrabas el guión “-” tinene el charset (8028) y el que estaba esperando en la expresión regular era el caracter charset(45), por lo que retornaba un False a pesar de que el rut si es válido.

    Lo que hice finalmente fué el agregar este caracter a la expresión regular para que sea admitido como caracter de separación del dígito verificador.

    Espero que esto sea de ayuda para tí. Saludos y gracias por el aviso.

Avatar

Pancho · agosto 2, 2017 a las 6:25 pm

Me sirvió mucho, gracias !!!

Avatar

Gin · mayo 12, 2018 a las 2:01 pm

Muchas gracias! Excelente código, compacto y funcional, gracias por compartirlo 😀

Avatar

benjamin morande · octubre 25, 2018 a las 10:23 am

Hola, estoy buscando este código pero lo necesito para un tomador de encuestas en formato Regex.
Actualmente tengo el código para validar que el Rut cumpla el formato pero no para que sea un rut válido
El código del formato es: ^\d{1,2}\.\d{3}\.\d{3}[-][0-9kK]{1}$

No sé si tienes alguno para que lo valide.

Muchas gracias

    Avatar

    Cesar Gonzalez · octubre 25, 2018 a las 6:26 pm

    Entiendo tu problema, pero las expresiones regulares sólo son aplicables a formatos de cadenas de caracteres sin lógica de negocio, en el caso de un Rut, se calcula su validez en base al algoritmo de módulo 11, en palabras simples la validación con expresiones regulares solo válida formas de cadenas. Lamentablemente tienes que poner un paso posterior a la validación con expresiones regulares que compruebe el Rut basado en módulo 11

    Espero que esta explicación sirva

Validación de email con Javascript - Cesar Gonzalez · abril 23, 2017 a las 2:08 am

[…] la tengo dentro de un objeto que envuelve una serie de funciones comunes como son la validación de RUT, TRIM, Rellenos de cadenas con ceros… etc, pero con el fin de simplificar este POST lo dejé en […]

Valida el RUT chileno con Java - Web Software Developer · diciembre 9, 2017 a las 2:13 am

[…] con Java. Es por esto que hoy comparto este código basado en una que está desarrollada con PHP y JavaScript . Espero que les sea de bastante […]

HOLA! si te gustó o te fue útil, por favor, considera dejarme un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

A %d blogueros les gusta esto: