panchodp/rut-chileno-rule

Validador(rule) y formateador de RUT chileno para Laravel.

Maintainers

Package info

github.com/PanchoDP/rut-chileno-rule

pkg:composer/panchodp/rut-chileno-rule

Statistics

Installs: 45

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

v1.1.4 2026-03-19 17:11 UTC

This package is not auto-updated.

Last update: 2026-04-02 17:19:13 UTC


README

Logo for Laravel Action

Php Total Downloads Latest Stable Version License

Rut Chileno Rule for Laravel.

Regla de validación de RUT chileno para Laravel.

Compatibilidad

Laravel PHP Testbench
10.x 8.4, 8.5 ^8.0
11.x 8.4, 8.5 ^9.0
12.x 8.4, 8.5 ^10.0
13.x 8.4, 8.5 ^11.0

Requisitos

  • PHP 8.4+
  • Laravel 10, 11, 12 o 13

Instalación

composer require panchodp/rut-chileno-rule

Uso Regla de Validación

// En tu FormRequest o Controller
$request->validate([
    'rut' => 'required|rutchileno',
]);

// O con el facade Validator
use Illuminate\Support\Facades\Validator;

$validator = Validator::make($data, [
    'rut' => 'required|rutchileno',
]);

Regla de validación

Regla Descripción
rutchileno Valida que el campo sea un RUT chileno válido

Acepta formatos: 12.345.678-5, 12345678-5, 123456785

Posibles Errores específicos

El validador retorna mensajes específicos según el tipo de error:

Error Descripción
not_string El valor no es texto
min_length El RUT es demasiado corto
max_length Excede el máximo de caracteres (9)
invalid_characters Contiene caracteres no permitidos
invalid_verifier El dígito verificador es incorrecto

Nota: Los valores null y vacíos pasan la validación. Usa la regla required para campos obligatorios.

Personalizar mensajes de error

Publica los archivos de idioma:

php artisan vendor:publish --tag=rutchileno-lang

O define el mensaje en resources/lang/es/validation.php:

'rutchileno' => 'El :attribute no es un RUT chileno válido.',

Helpers de Formateo para trabajar con RUTs

Funciones globales para formatear y manipular RUTs:

// Formatear
rut_format('123456785');       // "12.345.678-5"
rut_format_dash('123456785');  // "12345678-5"

// Limpiar
rut_clean('12.345.678-5');     // "123456785"

// Extraer partes
rut_get_number('12.345.678-5');   // "12345678"
rut_get_verifier('12.345.678-5'); // "5"

// Calcular dígito verificador
rut_calculate_verifier('12345678'); // "5"

// Validar
rut_validate('12.345.678-5');  // true
rut_validate('12.345.678-0');  // false

Caso de uso típico

// Guardar en BD sin formato
$user->rut = rut_clean($request->rut);  // "123456785"

// Mostrar formateado
echo rut_format($user->rut);  // "12.345.678-5"

Facade Rut

También puedes usar la Facade Rut:

use Panchodp\RutChileno\Facades\Rut;

Rut::format('123456785');         // "12.345.678-5"
Rut::clean('12.345.678-5');       // "123456785"
Rut::formatWithDash('123456785'); // "12345678-5"
Rut::isValid('12.345.678-5');     // true

Testing

composer test

# Con coverage
composer test:coverage

Licencia

MIT