Saltar al contenido principal

Formateadores

Los formateadores normalizan cadenas a un formato canónico. Lanzan DrUtilsError en caso de entrada inválida.

formatCedula​

Formatea una cédula con o sin guiones.

Argumentos

ParámetroTipoPor defectoDescripción
cedulastring—Cédula sin formato o con guiones
options.dashesbooleantrueSi se incluyen guiones en la salida

Retorna string — cédula formateada.

Ejemplo

import { formatCedula } from 'dr-utils'

formatCedula('40220579912') // '402-2057991-2'
formatCedula('402-2057991-2', { dashes: false }) // '40220579912'

formatRNC​

Formatea un RNC con o sin guiones. También acepta cédulas de 11 dígitos.

Argumentos

ParámetroTipoPor defectoDescripción
rncstring—RNC o cédula sin formato o con guiones
options.dashesbooleantrueSi se incluyen guiones en la salida

Retorna string — RNC formateado.

Ejemplo

import { formatRNC } from 'dr-utils'

formatRNC('130500292') // '130-50029-2'
formatRNC('130-50029-2', { dashes: false }) // '130500292'

formatNCF​

Formatea un NCF con un separador de guión entre el código de serie/tipo y la secuencia.

Argumentos

ParámetroTipoDescripción
ncfstringCadena NCF sin formato

Retorna string — NCF formateado con guión.

Ejemplo

import { formatNCF } from 'dr-utils'

formatNCF('B0183920391') // 'B01-83920391'
formatNCF('E319320341237') // 'E31-9320341237'

formatPhoneNumber​

Formatea un número de teléfono dominicano en formato nacional o internacional.

Argumentos

ParámetroTipoPor defectoDescripción
numberstring—Número de teléfono en cualquier formato dominicano aceptado
internationalbooleanfalseSi es true, retorna formato E.164 (+1XXXXXXXXXX)

Retorna string — número de teléfono formateado.

Ejemplo

import { formatPhoneNumber } from 'dr-utils'

formatPhoneNumber('8092201111') // '(809) 220-1111'
formatPhoneNumber('8092201111', true) // '+18092201111'

formatPlate​

Convierte a mayúsculas y normaliza una placa de vehículo dominicana.

Argumentos

ParámetroTipoDescripción
platestringCadena de placa (sin distinción entre mayúsculas y minúsculas)

Retorna string — placa en mayúsculas.

Ejemplo

import { formatPlate } from 'dr-utils'

formatPlate('a123456') // 'A123456'
formatPlate('el12345') // 'EL12345'

formatDOP​

Formatea un número como cadena de moneda en Pesos Dominicanos (DOP).

Argumentos

ParámetroTipoPor defectoDescripción
valuenumber—Monto a formatear
options.symbol'RD$' | '$' | 'none''RD$'Prefijo del símbolo de moneda
options.decimalsnumber2Número de decimales

Retorna string — cadena de moneda formateada. Los montos negativos llevan el signo antes del símbolo ('-RD$1,234.50').

Lanza DrUtilsError (FORMAT_DOP_FAILED) si value es NaN o Infinity.

Ejemplo

import { formatDOP } from 'dr-utils'

formatDOP(1234.5) // 'RD$1,234.50'
formatDOP(1234.5, { symbol: '$' }) // '$1,234.50'
formatDOP(1234.5, { symbol: 'none' }) // '1,234.50'
formatDOP(1234.5, { decimals: 0 }) // 'RD$1,235'
formatDOP(-1234.5) // '-RD$1,234.50'

Formato mientras se escribe​

formatCedulaPartial, formatRNCPartial y formatPhoneNumberPartial formatean entradas incompletas, para usarlas en el onChange de un campo de texto. Eliminan lo que no sea dígito, limitan la longitud, agregan separadores en cuanto empieza el siguiente grupo y nunca lanzan errores ni validan. Valida al enviar con un validador o un schema.

FunciónMáx. dígitosProgresión
formatCedulaPartial11001 → 001-12 → 001-1234567-8
formatRNCPartial11130-72075-4 hasta 9 dígitos, formato de cédula con 10–11
formatPhoneNumberPartial10(809 → (809) 555 → (809) 555-1234; ignora +1

Ejemplo

import { useState } from 'react'
import { formatCedulaPartial } from 'dr-utils/formatters'

function CedulaInput() {
const [value, setValue] = useState('')
return (
<input
inputMode="numeric"
value={value}
onChange={(e) => setValue(formatCedulaPartial(e.target.value))}
placeholder="000-0000000-0"
/>
)
}
formatCedulaPartial('0011234') // '001-1234'
formatRNCPartial('130720754') // '130-72075-4'
formatPhoneNumberPartial('+1 809 55') // '(809) 55'