juanisorondo / validate.uy
Library for validating data in Uruguayan formats
Requires
- php: ^8.1
Requires (Dev)
- phpunit/phpunit: ^10.5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Librería PHP para validar documentos uruguayos mediante su formato y dígito verificador.
Actualmente incluye validadores para:
- Cédula de identidad uruguaya (CI).
- Registro Único Tributario (RUT).
La librería comprueba la estructura y el dígito verificador del documento. No consulta registros oficiales ni confirma que el documento exista o esté vigente.
Requisitos
- PHP 8.1 o superior.
- Composer.
Instalación
Instalá el paquete con Composer:
composer require juanisorondo/validate.uy
Composer registrará automáticamente las clases mediante PSR-4. Si no usás un framework que cargue el autoloader por vos, incluilo en el punto de entrada de tu aplicación:
require_once __DIR__ . '/vendor/autoload.php';
Uso
Todos los validadores exponen un método estático validate() y devuelven true
cuando el documento es válido o false cuando no lo es.
Cédula de identidad
use juanisorondo\ValidadorUruguay\Ci; Ci::validate('1.212.121-2'); // true Ci::validate('1212121-2'); // true Ci::validate('12121212'); // true Ci::validate('1.212.121-1'); // false
Si no se indica un formato, Ci::validate() acepta cualquiera de los formatos
soportados. Para exigir uno en particular, pasá una de las constantes de Ci
como segundo argumento:
| Constante | Formato admitido | Ejemplo |
|---|---|---|
Ci::DOTS_HYPHEN |
Puntos y guion | 1.212.121-2 |
Ci::HYPHEN |
Solo guion | 1212121-2 |
Ci::NUMBERS |
Solo números | 12121212 |
use juanisorondo\ValidadorUruguay\Ci; Ci::validate('1.212.121-2', Ci::DOTS_HYPHEN); // true Ci::validate('1212121-2', Ci::HYPHEN); // true Ci::validate('12121212', Ci::NUMBERS); // true // El número es válido, pero no coincide con el formato solicitado. Ci::validate('1.212.121-2', Ci::NUMBERS); // false
La firma del método es:
Ci::validate(string $ci, ?string $format = null): bool
RUT
El RUT debe contener exactamente 12 dígitos, sin puntos, espacios ni guiones. Es
recomendable enviarlo como string, especialmente si comienza con cero.
use juanisorondo\ValidadorUruguay\Rut; Rut::validate('210475730011'); // true Rut::validate('020064100019'); // true Rut::validate('310475730011'); // false Rut::validate('21047573001'); // false: no tiene 12 dígitos
Desarrollo
Cloná el repositorio e instalá las dependencias:
git clone https://github.com/juanisorondo/validate.uy.git
cd validate.uy
composer install
Para ejecutar la suite de tests:
vendor/bin/phpunit tests