Skip to content

Class: Format ​

Format - A collection of formatting utilities for strings, numbers, and dates.

Author ​

Heliomar P. Marques https://navto.me/heliomarpm

Format.abbreviateNumber ​

abbreviateNumber() ​

ts
static abbreviateNumber: (value, options) => string;

Abbreviates a number by adding a suffix based on its magnitude. The function supports numbers up to 1 decillion (1e33) and uses the following suffixes:

  • K for thousand (1e3)
  • M for million (1e6)
  • B for billion (1e9)
  • T for trillion (1e12)
  • Q for quadrillion (1e15)
  • Qi for quintillion (1e18)
  • S for sextillion (1e21)
  • Se for septillion (1e24)
  • O for octillion (1e27)
  • N for nonillion (1e30)
  • D for decillion (1e33) *

Parameters ​

value ​

The number to abbreviate.

number | bigint

options ​

Options for abbreviation, including:

  • fractionDigits: Number of decimal places to include in the abbreviated value.
  • removeEndZero: Whether to remove trailing zeros after the decimal point.
fractionDigits? ​

number = 2

removeEndZero? ​

boolean = true

Returns ​

string

A string representing the abbreviated number with a suffix.

Example ​

ts
abbreviateNumber(1_500); // '1.50K'
abbreviateNumber(2_000_000); // '2.00M'
abbreviateNumber(123_456_789, {fractionDigits: 1}); // '123.5M'
abbreviateNumber(1e33, {removeEndZero: false}); // '1.00D'

See ​

Format.currency ​

currency() ​

ts
static currency: (value, options) => string;

Formats a number as a currency string. Defaults to Brazilian Real (BRL) and Portuguese (Brazil) locale (pt-BR). eg: R$ 1.234,56

Parameters ​

value ​

number

The number to format.

options ​

Options for formatting. These include the locale and currency.

currency ​

string

locale ​

LocalesArgument

Returns ​

string

A string representing the formatted currency.

Throws ​

If the value is not a number.

Example ​

js
Format.currency(123456.78); // 'R$ 123.456,78'Format.currency(1234.56);
// Output: R$ 1.234,56

See ​

https://www.w3schools.com/jsref/jsref_tolocalestring.asp

Format.date ​

date() ​

ts
static date: (date, format, options) => string;

Formats a Date object into a string according to the specified format. Supported formats are:

  • 'a': 'am' or 'pm' in lowercase
  • 'A': 'AM' or 'PM' in uppercase
  • 'hh': two-digit hours in 12h format (01-12)
  • 'h': hours in 12h format (1-12)
  • 'HH': two-digit hours in 24h format (00-23)
  • 'H': hours in 24h format (0-23)
  • 'mm': two-digit minutes (00-59)
  • 'ss': two-digit seconds (00-59)
  • 'SSS': three-digit milliseconds (000-999)
  • 'yyyy': four-digit year (2024)
  • 'yy': two-digit year (24)
  • 'MMMM': full month name (January, February, ...)
  • 'MMM': full month name abbreviated month (Jan, Feb, ...)
  • 'MM': two-digit month (01-12)
  • 'M': month (1-12)
  • 'dddd': full weekday name (Sun, Mon, ...)
  • 'ddd': abbreviated weekday name (Sun, Mon, ...)
  • 'dd': two-digit day (01-31)
  • 'd': day (1-31)

Parameters ​

date ​

The date to format.

string | number | Date

format ​

string

The desired format for the output string.

options ​

Options for formatting. These include:

  • locale: The locale to use for formatting. Defaults to "default".
  • timeZoneUTC: Whether to use UTC time zone. Defaults to false.
locale? ​

LocalesArgument

timeZoneUTC? ​

boolean

Returns ​

string

The date formatted as a string.

Example ​

ts
Format.date('2025-03-02', 'dddd, dd MMMM yyyy', 'en-US'); // Output: 'Sunday, 02 March 2025'

See ​

https://www.w3schools.com/jsref/jsref_tolocalestring.asp

Format.interpolate ​

interpolate() ​

ts
static interpolate: (template, ...variables) => string;

Interpolates a template string with the provided variables.

Parameters ​

template ​

string

The template string to interpolate.

variables ​

...(string | number)[]

The variables to interpolate into the template.

Returns ​

string

The interpolated template string.

Throws ​

If a placeholder index is out of range of the provided variables.

Example ​

js
interpolate('Hello, {0}!', 'World'); // 'Hello, World!'
interpolate('The sum of {0} and {1} is {2}.', 1, 2, 3); // 'The sum of 1 and 2 is 3.'

Format.maskIt ​

maskIt() ​

ts
static maskIt(
   value, 
   maskChar?, 
   startIndex?, 
   finalIndex?): string;

Masks a substring of a string with a specified character.

Parameters ​

value ​

string

The original string to mask.

maskChar? ​

string = "*"

startIndex? ​

number = 0

The starting index of the substring to mask (inclusive).

finalIndex? ​

number = null

The ending index of the substring to mask (exclusive). If null, masks until the end of the string.

Returns ​

string

The masked string.

Throws ​

maskChar must be a single character

Example ​

js
maskIt('1234567890', '*', 2, 5); // '12*****90'
maskIt('1234567890', '#', 3); // '123########'

Format.maskItParts ​

maskItParts() ​

ts
static maskItParts(
   text, 
   maskChar?, 
   visibleChars?): string;

Masks a part of a string with a specified character.

Parameters ​

text ​

string

The original string to mask.

maskChar? ​

string = "*"

The character to use for masking.

visibleChars? ​

number = 1

The number of visible characters in the masked part.

Returns ​

string

The masked string.

Throws ​

maskChar must be a single character

Example ​

js
maskItParts('Heliomar P. Marques', '*', 1); // 'H******* P. M******'
maskItParts('+55 (11) 91888-0000', '#', 1); // '+5# (1#) 9####-0###'
maskItParts('123.444.555-67', '_', 2); // '12_.44_.55_-67'

Format.number ​

number() ​

ts
static number: (value, locale) => string;

Formats a number with at least two decimal places, using the specified locale.

Parameters ​

value ​

The number to format.

number | bigint

locale ​

LocalesArgument = "default"

The locale to use for formatting. Defaults to "default".

Returns ​

string

A string representing the formatted number.

Example ​

ts
Format.number(123.456, "pt-BR"); // Output: "123,46"
Format.number(123.45); // Output: "123.45"
Format.number(123); // Output: "123"

See ​

https://www.w3schools.com/jsref/jsref_tolocalestring.asp

Format.onlyNumbers ​

onlyNumbers() ​

ts
static onlyNumbers: (value) => string;

Removes all non-numeric characters from a string.

Parameters ​

value ​

string

The string to remove non-numeric characters from.

Returns ​

string

The resulting string with only numeric characters.

Example ​

ts
onlyNumbers('123abc'); // '123'
onlyNumbers('abc'); // ''

Format.padZerosByRef ​

padZerosByRef() ​

ts
static padZerosByRef(value, refValue): string;

Pads a number with leading zeros to match the number of digits in a given maximum value.

Parameters ​

value ​

number

The number to be padded with leading zeros.

refValue ​

number

The reference value for determining the maximum length for adding leading zeros. eg: 90, 110, 999, 1000, etc.

Returns ​

string

the input number padded with leading zeros to match the number of digits in the maximum value.

Example ​

js
Format.padZerosByRef(2, 90); // '02'
Format.padZerosByRef(12, 110); // '012'

Format.ptBr ​

ptBr ​

ts
static ptBr: object;

Namespace

Formatações em português brasileiro.

cep() ​

ts
cep: (value, fallback?) => string;

Formata um CEP.

Parameters ​
value ​

string

O valor a ser formatado.

fallback? ​

string = "CEP com formato incorreto!"

O valor a ser retornado caso o valor informado esteja incorreto.

Returns ​

string

O CEP formatado.

Example ​
ts
const cep = Format.ptBr.cep('12345678'); // Output: '12345-678'

cnpj() ​

ts
cnpj: (value, fallback) => string;

Formata um CNPJ.

Parameters ​
value ​

string

O valor a ser formatado.

fallback ​

string = "CNPJ com formato incorreto!"

O valor a ser retornado caso o valor informado esteja incorreto.

Returns ​

string

O CNPJ formatado.

Example ​
ts
const cnpj = Format.ptBr.cnpj('12345678000195'); // Output: '12.345.678/0001-95'

cpf() ​

ts
cpf: (value, fallback) => string;

Formata um CPF.

Parameters ​
value ​

string

O valor a ser formatado.

fallback ​

string = "CPF com formato incorreto!"

O valor a ser retornado caso o valor informado esteja incorreto.

Returns ​

string

O CPF formatado.

Example ​
ts
const cpf = Format.ptBr.cpf('12345678909'); // Output: '123.456.789-09'

telefone() ​

ts
telefone: (value, defaultAreaCode, fallback) => string;

Formata um número de telefone brasileiro. Se o número tiver menos de 10 dígitos, o código de área padrão será adicionado. Se o número tiver 8 ou 9 dígitos, será formatado como um número local. Se o número tiver 10 ou 11 dígitos, será formatado com o código de área.

Parameters ​
value ​

string

O valor a ser formatado. (ex. '33987654321')

defaultAreaCode ​

string = ""

O código de área padrão a ser usado se o número tiver menos de 10 dígitos. (ex. '33')

fallback ​

string = "Telefone com formato incorreto!"

O valor a ser retornado caso o valor informado esteja incorreto.

Returns ​

string

O número de telefone formatado.

Example ​
ts
const telefone1 = Format.ptBr.telefone('33987654321'); // Output: '33 98765-4321'
const telefone2 = Format.ptBr.telefone('987654321', '11'); // Output: '11 98765-4321'
const telefone3 = Format.ptBr.telefone('87654321', '11'); // Output: '11 8765-4321'
const telefone4 = Format.ptBr.telefone('87654321'); // Output: 'Telefone está incorreto!'
See ​

valorPorExtenso() ​

ts
valorPorExtenso: (value) => string;

Converte um valor em uma string escrita por extenso.

Parameters ​
value ​

O valor a ser convertido.

number | bigint

Returns ​

string

Uma string com o valor escrito por extenso.

Example ​
ts
	Format.valorPorExtenso(1000); // Output: "mil"
	Format.valorPorExtenso(1000000); // Output: "um milhão"
	Format.valorPorExtenso(1000000000); // Output: "um bilhão"
	Format.valorPorExtenso(1000000001); // Output: "um bilhão e um"
 Format.valorPorExtenso(2_000_000_000_000_000); // Output: "dois quatrilhões"

Example ​

ts
import { Format } from '@heliomarpm/helpers';

const cnpj = Format.ptBr.cnpj('12345678000195'); // Output: '12.345.678/0001-95'
const cpf = Format.ptBr.cpf('12345678909'); // Output: '123.456.789-09'
const cep = Format.ptBr.cep('12345678'); // Output: '12345-678'
const telefone1 = Format.ptBr.telefone('11987654321'); // Output: '(11) 98765-4321'
const telefone2 = Format.ptBr.telefone('987654321', '11'); // Output: '(11) 98765-4321'
const valorPorExtenso = Format.ptBr.valorPorExtenso(123456); // Output: 'cento e vinte e três mil quatrocentos e cinquenta e seis'

ptBr

Format.slugify ​

slugify() ​

ts
static slugify(str): string;

Converts a string to a slug.

Parameters ​

str ​

string

The string to convert.

Returns ​

string

The slugified string.

Example ​

ts
Format.slugify('Hello, world!'); // 'hello-world'

Format.titleCase ​

titleCase() ​

ts
static titleCase(name): string;

Capitalizes the first letter of the full name while maintaining lowercase for specified conjunctions.

Parameters ​

name ​

string

The full name string to format.

Returns ​

string

The formatted name in title case.

Example ​

ts
titleCase('john doe de souza'); // 'John Doe de Souza'
titleCase('maria da silva'); // 'Maria da Silva'

Format.truncate ​

truncate() ​

ts
static truncate: (text, maxLength, ellipsis?) => string;

Truncates a given text to a maximum length and appends an ellipsis.

Parameters ​

text ​

string

The text to truncate.

maxLength ​

number

The maximum allowed length of the text.

ellipsis? ​

string = "..."

The string to append to the end of the truncated text.

Returns ​

string

The truncated text.

Throws ​

If maxLength is less than or equal to the length of ellipsis.

Example ​

js
truncate('Hello, world!', 5); // 'He...'
truncate('Short text', 20); // 'Short text'