rut-kit ​
Referencia de la API core para validar, formatear y trabajar con RUTs chilenos.
import { isValidRut, validateRut, formatRut, cleanRut, getRutCheckDigit, getErrorMessage } from 'rut-kit'isValidRut ​
Valida si un RUT chileno es válido.
function isValidRut(rut: string): booleanParámetros ​
| Nombre | Tipo | DescripciĂłn |
|---|---|---|
rut | string | RUT a validar |
Retorno ​
boolean — true si el RUT es válido, false en caso contrario.
Formatos aceptados ​
- Con puntos y guiĂłn:
18.972.631-7 - Solo guiĂłn:
18972631-7 - Sin formato:
189726317
WARNING
Solo acepta formatos chilenos válidos. Otros separadores (comas, asteriscos) son rechazados. RUT mĂnimo: 1.000.000.
Ejemplo ​
isValidRut('18.972.631-7') // true
isValidRut('18.972.631-0') // false
isValidRut('18,972,631-7') // falsevalidateRut ​
Valida un RUT y retorna informaciĂłn detallada del resultado.
function validateRut(rut: string): RutValidationResultParámetros ​
| Nombre | Tipo | DescripciĂłn |
|---|---|---|
rut | string | RUT a validar |
Retorno ​
RutValidationResult — Objeto con el resultado de la validación:
// Si es válido
{ valid: true, rut: string }
// Si es inválido
{ valid: false, error: RutValidationError }Tipos de error ​
| Error | DescripciĂłn |
|---|---|
invalidFormat | Formato no válido, largo incorrecto, o caracteres no permitidos |
invalidCheckDigit | El dĂgito verificador no coincide |
Ejemplo ​
validateRut('18.972.631-7')
// { valid: true, rut: '189726317' }
validateRut('18.972.631-0')
// { valid: false, error: 'invalidCheckDigit' }
validateRut('18,972,631-7')
// { valid: false, error: 'invalidFormat' }formatRut ​
Formatea un RUT al formato especificado.
function formatRut(rut: string, format?: RutOutputFormat): stringParámetros ​
| Nombre | Tipo | DescripciĂłn |
|---|---|---|
rut | string | RUT a formatear |
format | RutOutputFormat | Formato de salida (opcional) |
Formatos de salida ​
| Formato | Resultado | Uso recomendado |
|---|---|---|
undefined (default) | 18972631-7 | Almacenamiento |
'formatted' | 18.972.631-7 | Mostrar al usuario |
'clean' | 189726317 | Comparaciones, APIs |
Retorno ​
string — RUT formateado.
Ejemplo ​
formatRut('189726317') // '18972631-7'
formatRut('189726317', 'formatted') // '18.972.631-7'
formatRut('189726317', 'clean') // '189726317'TIP
Esta funciĂłn es permisiva: acepta cualquier separador de entrada. Usa cleanRut() internamente.
cleanRut ​
Extrae solo los dĂgitos y la letra K de un RUT, removiendo cualquier otro carácter.
function cleanRut(rut: string): stringParámetros ​
| Nombre | Tipo | DescripciĂłn |
|---|---|---|
rut | string | RUT a limpiar |
Retorno ​
string — RUT limpio (solo dĂgitos y K en mayĂşscula). Elimina ceros iniciales.
Ejemplo ​
cleanRut('18.972.631-7') // '189726317'
cleanRut('33.333.335-k') // '33333335K'
cleanRut('18,972,631-7') // '189726317'
cleanRut('18*972*631*7') // '189726317'TIP
Función permisiva. Útil para limpiar datos de Excel, PDFs u otras fuentes con separadores no estándar.
getRutCheckDigit ​
Calcula el dĂgito verificador de un RUT usando el algoritmo mĂłdulo 11.
function getRutCheckDigit(rut: string): stringParámetros ​
| Nombre | Tipo | DescripciĂłn |
|---|---|---|
rut | string | Cuerpo del RUT (sin dĂgito verificador) |
Retorno ​
string — DĂgito verificador calculado ('0'-'9' o 'K').
Ejemplo ​
getRutCheckDigit('18972631') // '7'
getRutCheckDigit('33333335') // 'K'
getRutCheckDigit('11111111') // '1'getErrorMessage ​
Convierte un tipo de error a un mensaje legible.
function getErrorMessage(error: RutValidationError, messages?: RutErrorMessages): stringParámetros ​
| Nombre | Tipo | DescripciĂłn |
|---|---|---|
error | RutValidationError | Tipo de error a convertir |
messages | RutErrorMessages | Mensajes personalizados (opcional) |
Retorno ​
string — Mensaje de error legible.
Mensajes por defecto ​
| Error | Mensaje |
|---|---|
invalidFormat | 'Formato de RUT inválido' |
invalidCheckDigit | 'DĂgito verificador incorrecto' |
Ejemplo ​
const result = validateRut('18.972.631-0')
if (!result.valid) {
getErrorMessage(result.error)
// 'DĂgito verificador incorrecto'
getErrorMessage(result.error, {
invalidCheckDigit: 'RUT no válido'
})
// 'RUT no válido'
}