Texto

Funções de texto para nomes de pessoas, empresas e endereços.

  • Matriz de paridade

Capitalize

Coloca em maiúscula a primeira letra de cada palavra do jeito que se escreve um nome de pessoa, de empresa ou um endereço no Brasil.

Por exemplo, "jose da silva" vira "Jose da Silva", "empresa ltda" vira "Empresa LTDA" e "santana/rs" vira "Santana/RS".

  • options.lowerCaseWords lista as palavras que ficam em minúsculas entre duas palavras. O padrão são as preposições e a conjunção e: a, ao, aos, à, às, ante, após, até, com, da, das, de, do, dos, e, em, na, nas, no, nos, num, numa, o, para, pela, pelas, pelo, pelos, perante, por, sem, sob, sobre, mais as partículas del, della, den, der, di, du, van e von. Os artigos são só a e o. Até a 2.4.0 ao, aos, à, às, para, pela(s), pelo(s), sob, sobre, até, num, numa, ante, após e perante recebiam inicial maiúscula.
  • options.upperCaseWords lista as palavras sempre em maiúsculas. O padrão são as designações de empresa (CIA, EIRELI, EPP, LTDA, ME, MEI, S.A, S.A., S.S., S/A, S/S, SCP), as abreviações de documento (CEP, CNPJ, CPF, RG, UF) e os numerais romanos. A comparação ignora maiúsculas e minúsculas. S/A e S/S são reconhecidos através da barra, mesmo que a barra separe palavras ("casa de carnes s/a" vira "Casa de Carnes S/A"). Uma lista informada substitui o padrão, então { upperCaseWords: [] } transforma "empresa ltda" em "Empresa Ltda". A sigla de um estado depois de /, ou que termina o valor depois de hífen com espaços, travessão com espaços ou vírgula, continua em maiúsculas mesmo com upperCaseWords informado.
  • As palavras são separadas por espaços, -, /, apóstrofos e pontuação vizinha. Sequências de espaços em branco (espaços, tabulações, quebras de linha) viram um só espaço, e os espaços do começo e do fim são removidos.
  • Uma palavra minúscula mantém a inicial maiúscula quando é a primeira, a última ou vem seguida de pontuação. ME fica em maiúsculas só como designação (última palavra, ou logo antes de outra designação de empresa, como EPP ou S/A), nunca quando um hífen ou um apóstrofo o prende à palavra anterior ("diga-me" vira "Diga-Me"). S.A escrito sem o ponto final também é uma designação ("empresa s.a" vira "Empresa S.A"; até a 2.4.0 virava "Empresa S.a"). SA sem pontos fica como está (o sobrenome Sá).
  • A partícula elidida d fica em minúsculas onde aparecer, até como primeira palavra, mas só quando um apóstrofo e uma palavra vêm depois dela ("santa bárbara d'oeste" vira "Santa Bárbara d'Oeste"; "rua d" vira "Rua D"). Uma letra sozinha depois de apóstrofo é o possessivo do inglês e fica em minúscula ("bob's" vira "Bob's").
  • Numerais romanos de II a XXXIX ficam em maiúsculas ("rua xxiv de maio" vira "Rua XXIV de Maio"). VI fica de fora porque também é a forma verbal "vi", e os numerais a partir de XL ficam de fora porque letras como L, C e D formam palavras comuns. A 2.4.0 parava em XXIII.
  • A sigla de um estado (UF) fica em maiúsculas depois de / ("santana/rs" vira "Santana/RS"). Como última palavra, ela também fica em maiúsculas depois de hífen com espaços, travessão (en dash) com espaços ou vírgula, a forma "Cidade - UF" do guia de endereçamento dos Correios: "brasília - df" vira "Brasília - DF". Em qualquer outra posição, ou depois de hífen sem espaços ("brasília-df"), as duas letras são uma palavra comum. A 2.4.0 só colocava a sigla em maiúsculas depois de /.
  • Só uma sigla de estado existente conta: "santana/br" vira "Santana/Br".
  • Uma primeira letra cuja maiúscula tem duas letras (ß) mantém a caixa: "straße" vira "Straße" e "ßa" continua "ßa". As letras depois da primeira vão para minúsculas uma a uma, então "İSTANBUL" vira "İstanbul".
  • Um lowerCaseWords ou upperCaseWords que não é array volta ao padrão, e um item que não é string é ignorado. Um value que não é string retorna uma string vazia.
ParâmetroTipoObrigatório
valuestringsim
optionsCapitalizeOptionsnão
options.lowerCaseWordsstring[]não
options.upperCaseWordsstring[]não
retornastring

Transforma em maiúscula a primeira letra de cada palavra, do jeito que se escreve um nome, uma razão social ou um endereço brasileiro, sem precisar de opções.

  • Opções (CapitalizeOptions): lowerCaseWords, palavras mantidas em minúsculas entre duas palavras, por padrão as preposições e a conjunção e, como de, da, do, ao, para, pelo, sobre, até (os artigos são só a e o); upperCaseWords, palavras sempre em maiúsculas, por padrão designações societárias e abreviações como LTDA, S.A., ME, CNPJ e algarismos romanos. Uma lista substitui a padrão.
  • Palavras se separam em espaços, -, /, apóstrofos e pontuação colada; espaços repetidos viram um só.
  • Palavra minúscula que é a primeira, a última ou precede pontuação é designativo e mantém a maiúscula.
  • ME só vira maiúsculas como designação (última palavra ou antes de outra); S.A sem o ponto final também é designação, já SA sem pontos fica como está (o sobrenome Sá). Sigla de estado após / vira maiúsculas mesmo com upperCaseWords informado, assim como a que termina o valor depois de - ou – entre espaços ou de , , o "Cidade – UF" dos Correios.
import { capitalize } from '@brazilian-utils/brazilian-utils';

capitalize('jose da silva'); // Jose da Silva
capitalize('JOSÉ DA SILVA'); // José da Silva
capitalize('empresa ltda'); // Empresa LTDA
capitalize('banco do brasil s.a.'); // Banco do Brasil S.A.
capitalize('casa de carnes s/a'); // Casa de Carnes S/A ("S/A" é reconhecido com a barra no meio)
capitalize('mogi-guaçu'); // Mogi-Guaçu ("-" inicia uma nova palavra)
capitalize("santa bárbara d'oeste"); // Santa Bárbara d'Oeste ("'" inicia uma nova palavra, "d" fica minúsculo)
capitalize("bob's"); // Bob's (uma letra sozinha depois do apóstrofo é o possessivo do inglês)
capitalize('rua a, 100'); // Rua A, 100 (uma preposição antes de pontuação é um designativo)
capitalize('fulano comércio me'); // Fulano Comércio ME ("ME" como última palavra é a designação)
capitalize('não-me-toque'); // Não-Me-Toque (em qualquer outro lugar "me" é palavra comum)
capitalize('(empresa) ltda'); // (Empresa) LTDA
capitalize('luiz von schmidt'); // Luiz von Schmidt
capitalize('casa para todos'); // Casa para Todos (preposições contraídas como "ao", "às", "pelo" e "sobre" também ficam minúsculas)
capitalize('empresa s.a'); // Empresa S.A
capitalize('santana/rs'); // Santana/RS ("RS" é sigla de estado logo depois de uma "/")
capitalize('porto alegre/rs'); // Porto Alegre/RS
capitalize('brasília - df'); // Brasília - DF (sigla de estado como última palavra depois de " - ", " – " ou ", ")
capitalize('santana rs'); // Santana Rs (sem "/", "rs" é só uma palavra)
capitalize('rua xv de novembro'); // Rua XV de Novembro (algarismo romano, "de" fica em minúsculas)
capitalize('joão paulo ii'); // João Paulo II
capitalize('rua xxiv de maio'); // Rua XXIV de Maio (algarismos romanos de II a XXXIX, exceto VI, o verbo "vi")
capitalize('de'); // De (uma preposição mantém a maiúscula quando é a primeira palavra)
capitalize('empresa ltda', { upperCaseWords: [] }); // Empresa Ltda (a lista informada substitui a padrão)
capitalize('josé Ama MARIA', { lowerCaseWords: ['ama'] }); // José ama Maria
capitalize('doc inválido', { upperCaseWords: ['DOC'] }); // DOC Inválido (comparação sem diferenciar maiúsculas de minúsculas)
capitalize('  josé   maria  '); // José Maria (toda sequência de espaço em branco, tabs e quebras de linha inclusive, vira um único espaço)

Fonte: Manual de Redação da Presidência da República.

Código: brazilian-utils/javascript
Teste com JavaScript capitalize
As entradas começam com o primeiro caso compartilhado. Mude uma para ver o novo resultado.

Roda @brazilian-utils/brazilian-utils 2.5.0 no seu navegador.

Casos de teste compartilhados (162) e o resultado em cada biblioteca text.capitalize

Remove accents

Remove os sinais diacríticos (acentos, tis, cedilhas) de um texto.

  • A função decompõe cada caractere (Unicode NFD) e descarta toda marca combinante (categoria geral M), então remove acentos de qualquer escrita.
  • Letras sem decomposição em letra base mais marca continuam como estão (ß, ø, æ). Um value que não é string retorna uma string vazia.
ParâmetroTipoObrigatório
valuestringsim
retornastring

Remove marcas diacríticas (acentos, tils, cedilhas) de uma string.

  • Toda marca de combinação (categoria geral M do Unicode) é descartada, então acentos de qualquer escrita são removidos.
import { removeAccents } from '@brazilian-utils/brazilian-utils';

removeAccents('São Paulo'); // 'Sao Paulo'
removeAccents('Piauí'); // 'Piaui'
removeAccents('Ceará'); // 'Ceara'
removeAccents('Açaí'); // 'Acai'
removeAccents(''); // ''
Código: brazilian-utils/javascript
Teste com JavaScript removeAccents
As entradas começam com o primeiro caso compartilhado. Mude uma para ver o novo resultado.

Roda @brazilian-utils/brazilian-utils 2.5.0 no seu navegador.

Casos de teste compartilhados (11) e o resultado em cada biblioteca text.removeAccents

Fontes oficiais

Atualizado em

Nesta página