1.0.1 • Published 3 years ago
@ftapiat/js-rut-utils v1.0.1
JS Rut Utils
Librería para generar, validar, limpiar y dar formato a RUT chilenos.
Contenido
- Cómo Usarlo
RutModel- Funciones
Utils- Limpiar RUT
- Formatear RUT
- Generar RUT aleatorio
- Generar DV a partir del número del RUT
- Validación - Regex que comprueba que el RUT tenga puntos y guion y el largo de un RUT
- Validación - Regex que comprueba que el RUT tenga el largo de un RUT, independientemente de si tiene puntos y guiones
- Validación - RUT es mayor o igual a 1 millón
- Validación - RUT tiene formato correcto, sobre 1 millón y su DV es válido
- Validación - DV corresponde al calculado por el módulo 11
- Instalación
- Testing
Cómo usarlo
Dependiendo de lo que quieras hacer, puedes llamar al modelo RutModel o directamente llamar las funciones de la
carpeta utils.
RutModel
Representa a un RUT validado por su dígito verificador.
Propiedades de RutModel
Este RUT tiene 4 propiedades:
1. number Número del RUT, requerido en el constructor.
2. dv Dígito verificador, requerido en el constructor.
3. formatted RUT formateado.
4. cleaned RUT sin puntos ni guión.
Crear RutModel
- La forma más básica de crear un
RutModeles definiendo sus número y DV:
import {RutModel} from "@ftapia/js-rut-utils";
const rut = new RutModel(19101178, '3');- Sin embargo, no siempre se tiene esa información. Por lo que también puedes crear RUT de la siguiente forma:
import {RutModel} from "@ftapia/js-rut-utils";
// 1. Aleatorio:
const rutAleatorio = RutModel.random();
// 2. Desde el número del RUT. Esto generará automáticamente su DV:
const rutDesdeNumero = RutModel.fromNumber(19101178);
// 3. Desde el RUT como String. Esto limpiará el RUT y lo asignará
// automáticamente al modelo:
const rutDesdeString1 = RutModel.fromString('10.407.355-7'); // ✔ Funciona con puntos y guión.
const rutDesdeString2 = RutModel.fromString('10407355-7'); // ✔ Funciona sin puntos y con guión.
const rutDesdeString3 = RutModel.fromString('104073557'); // ✔ Funciona sin puntos ni guión.RUT erróneos
Si se crea un RUT con datos erróneos, se lanzará el error RutIsMalformedError.
El RUT puede ser erróneo si:
- El dígito verificador es inválido.
import {RutModel} from "@ftapia/js-rut-utils";
// ❌ Esto daría error
new RutModel(19101178, '5');
// ✔ Esto no
new RutModel(19101178, '3');- El número es menor a 1 millón.
import {RutModel} from "@ftapia/js-rut-utils";
// ❌ Esto daría error
new RutModel(111111, '6');
// ✔ Esto no
new RutModel(1111111, '4');- El número no puede ser un RUT falso con todos sus caracteres repetidos, como 11.111.111-1, 22.222.222-2, etc.
import {RutModel} from "@ftapia/js-rut-utils";
// ❌ Esto daría error
new RutModel(44444444, '4');
// ✔ Esto no
new RutModel(19101178, '3');Funciones utils
Todas las características de RutModel se subdividieron en varias funciones en la carpeta utils:
Limpiar RUT
import {cleanRut} from "@ftapia/js-rut-utils";
// Limpia el RUT de puntos y guiones.
const rut = cleanRut('19.101.178-3'); // '191011783'Formatear RUT
import {formatRut} from "@ftapia/js-rut-utils";
// Agrega puntos y guión al RUT
const rut = formatRut('191011783'); // '19.101.178-3'Generar RUT aleatorio
import {generateRut} from "@ftapia/js-rut-utils";
const rut = generateRut(); // Generará un RUT con DV, SIN puntos ni guión.
const rut = generateRut(true); // Generará un RUT con DV, CON puntos y guión.Generar DV a partir del número del RUT
import {generateDV} from "@ftapia/js-rut-utils";
const dv = generateDV(19101178); // '3'Validación - Regex que comprueba que el RUT tenga puntos y guion y el largo de un RUT
import {rutForcedDotsAndDashRegex} from "@ftapia/js-rut-utils";
rutForcedDotsAndDashRegex.test('19.101.178-3'); // ✔ true
rutForcedDotsAndDashRegex.test('191011783'); // ❌ false
rutForcedDotsAndDashRegex.test('19101178-3'); // ❌ false
rutForcedDotsAndDashRegex.test('abcde'); // ❌ falseValidación - Regex que comprueba que el RUT tenga el largo de un RUT, independientemente de si tiene puntos y guiones
import {rutOptionalDotsAndDashRegex} from "@ftapia/js-rut-utils";
rutOptionalDotsAndDashRegex.test('19.101.178-3'); // ✔ true
rutOptionalDotsAndDashRegex.test('191011783'); // ✔ true
rutOptionalDotsAndDashRegex.test('19101178-3'); // ✔ true
rutOptionalDotsAndDashRegex.test('abcde'); // ❌ falseValidación - RUT es mayor o igual a 1 millón
import {isRutNumberOver1Million} from "@ftapia/js-rut-utils";
isRutNumberOver1Million(1000000); // ✔ true
isRutNumberOver1Million(11000000); // ✔ true
isRutNumberOver1Million(999999); // ❌ falseValidación - RUT tiene formato correcto, sobre 1 millón y su DV es válido
import {isRutValid} from "@ftapia/js-rut-utils";
isRutValid('10407355-7'); // ✔ true : Sin puntos con guión y DV válido.
isRutValid('19.982-6'); // ❌ false : Número menor a 1 millón.
isRutValid('44.444.444-4'); // ❌ false : Número repetido.Validación - DV corresponde al calculado por el módulo 11
import {isRutValidInModule11} from "@ftapia/js-rut-utils";
isRutValidInModule11(19101178, '3'); // ✔ true
isRutValidInModule11(19101178, '4'); // ❌ false Instalación
npm install --save @ftapiat/js-rut-utilsTesting
npm install
npm test