Validador de RUT Chileno con JavaScript

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.

[codepen_embed height=”375″ theme_id=”793″ slug_hash=”jWNNKj” default_tab=”result” user=”donpandix”]See the Pen Valida Rut Chileno by Cesar Gonzalez (@donpandix) on CodePen.[/codepen_embed]

11 comentarios de “Validador de RUT Chileno con JavaScript”

  1. 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?

    1. 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.

  2. 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

    1. 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

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.