• Stars
    star
    538
  • Rank 82,538 (Top 2 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 6 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🇧🇷 Funções de formatação, conversão e validação para valores, documentos e outras unidades usadas no Brasil. Como CEP, CNPJ, CPF, BRL (R$), datas, números etc.

Brazilian Values

🇺🇸 Switch to english version

Build Status FOSSA Status Licença Tamanho da biblioteca minificada Tamanho da biblioteca minificada + gzipada

Validar e formatar valores brasileiros como dinheiro (BRL), CPF, CNPJ, datas etc.

Instalação

Este módulo está publicado no NPM, por isso você pode instalar usando qualquer gerenciador de pacotes Node.js.

npm install brazilian-values --save

# Use o comando abaixo para o Yarn.
yarn add brazilian-values

Instalação por CDN

Os pacotes desse módulo também estão disponíveis nas CDNs JSDelivr e UNPKG.

Em ambas você pode solicitar o pacote desejado ou usar o padrão, que é o UMD.

<!-- Usando o pacote padrão com o JSDelivr -->
<script src="https://cdn.jsdelivr.net/npm/brazilian-values"></script>

<!-- Usando o pacote padrão com o UNPKG -->
<script src="https://unpkg.com/brazilian-values"></script>

<script>
  /**
   * O pacote UMD expõe o brazilian-values com o objeto `BrazilianValues`.
   */
  BrazilianValues.formatToBRL(100);
  //=> 'R$ 100,00'
</script>

Como usar

brazilian-values fornece funções para lidar com formatação, validação e conversão de valores brasileiros. Todas essas funções podem ser importadas do pacote.

import { isCNPJ, formatToCNPJ } from 'brazilian-values';

const value = '12727442000113'

if (!isCNPJ(value))
  throw new Error('CNPJ is not valid.');
const document = formatToCNPJ(value);
//=> '12.727.442/0001-13'

API

Formatadores
Conversores
Validadores

Formatação

formatToBRL

Formata números ou string que contém números para a moeda brasileira (BRL).

formatToBRL(1928.93)
//=> 'R$ 1.928,93'

formatToBRL('9211928.18203')
//=> 'R$ 9.211.928,18'

formatToBRL(-18.49)
//=> 'R$ -18,49'

formatToCapitalized

Capitaliza as palavras de um texto, com exceção das palavras configuradas para serem deixadas em caixa-alta ou em caixa-baixa.

A primeira palavra do texto não será caixa-baixa mesmo se configurada como.

formatToCapitalized('SERVIDOR PÚBLICO MUNICIPAL')
//=> 'Servidor Público Municipal'

formatToCapitalized('   os PrimEIROS  HOMens da tERra', {
  wordsToKeepLowerCase: ['os', 'da']
})
//=> 'Os Primeiros Homens da Terra'

formatToCapitalized('nova tv foi lançada', {
  wordsToKeepUpperCase: ['tv']
})
//=> 'Nova TV Foi Lançada'

formatToCapitalized(' com espaços antes e depois ', {
  trimTrailingWhiteSpaces: false
})
//=> ' Com Espaços Antes e Depois '

formatToCEP

Formata uma string que contém números em CEP.

formatToCEP('15998030')
//=> '15998-030'

formatToCEP('02999')
//=> '02999'

formatToCNPJ

Formata uma string que contém números em CNPJ.

formatToCNPJ('128781')
//=> '12.878.1'

formatToCNPJ('32284981000138')
//=> '32.284.981/0001-38'

formatToCNPJ('00.0.000.00.00--00-00')
//=> '00.000.000/0000-00'

formatToCAEPF

Formata uma string que contém números em CAEPF.

formatToCAEPF('128781')
//=> '128.781'

formatToCAEPF('32284981000150')
//=> '322.849.810/001-50'

formatToCAEPF('00.0.000.00.00--00-00')
//=> '000.000.000/000-00'

formatToCPF

Formata uma string que contém números em CPF.

formatToCPF('00000000')
//=> '000.000.00'

formatToCPF('00000000000')
//=> '000.000.000-00'

formatToCPF('366.418.768-70')
//=> '366.418.768-70'

formatToCPFOrCNPJ

Formata uma string que contém números em CPF ou CNPJ dependendo da quantidade de caracteres.

formatToCPFOrCNPJ('00000000')
//=> '000.000.00'

formatToCPFOrCNPJ('366.418.768-70')
//=> '366.418.768-70'

formatToCPFOrCNPJ('32284981000138')
//=> '32.284.981/0001-38'

formatToCPFOrCNPJ('00.0.000.00.00--00-00')
//=> '00.000.000/0000-00'

formatToDate

Formata uma instância de Date para o estilo brasileiro, DD/MM/YYYY.

formatToDate(new Date(2002, 7, 21))
//=> '21/08/2002'

formatToDate(new Date())
//=> '08/09/2018'

formatToDateTime

Formata uma instância de Date para o data e horário no formato brasileiro, DD/MM/YYYY HH:mm.

formatToDateTime(new Date(2002, 7, 21, 18, 30))
//=> '21/08/2002 18:30'

formatToList

Formata os valores de um Array de string no estilo brasileiro.

formatToList(['Vitor', 'William', 'Fernando'])
//=> 'Vitor, William e Fernando'

formatToList([])
// => ''

formatToList(['1', '2'])
// => '1 e 2'

formatToList(['Direito Civil'])
//=> 'Direito Civil'

formatToNumber

Formata um número para o estilo brasileiro.

formatToNumber(0)
//=> '0'

formatToNumber(-1299)
//=> '-1.299'

formatToNumber(.981)
//=> '0,981'

formatToNumber('19898.1298')
//=> '19.898,1298'

formatToPhone

Formata uma string contendo números para o estilo do número de telefone brasileiro.

formatToPhone('11')
//=> '(11'

formatToPhone('11971626')
//=> '(11) 9716-26'

formatToPhone('11971626799')
//=> '(11) 9 7162-6799'

formatToRG

Formata uma string contendo números para RG.

Hoje, brazilian-values suporta apenas os formatos de SP e RJ.
Outros valores serão apenas "escapados" no input.

formatToRG('00000000A', 'SP')
//=> '00.000.000-A'

formatToRG('00.00.0000-0', 'RJ')
//=> '00.000.000-0'

formatToRG('MG-14.808.688', 'MG')
//=> 'MG-14.808.688'

formatToHiddenDigits

Formata uma string contendo dígitos substituindo os dígitos dentro do intervalo pelo caractere oculto (hider).

O intervalo pode receber números positivos ou negativos como atalho para o intervalo. Nesse caso o 2 equivale aos primeiros dois dígitos, e -3 aos últimos três dígitos.

O intervalo padrão são os três primeiros dígitos, e o caractere oculto padrão é o "*" (asterísco).

formatToHiddenDigits('00.000-000')
//=> '**.*00-000'

formatToHiddenDigits('03/04/2002', { hider: '-' })
//=> '--/-4/2002'

formatToHiddenDigits('111.111.111-11', { range: [4, 9] })
//=> '111.***.***-11'

formatToHiddenDigits('12.345.678-9', { hider: '#', range: 5 })
//=> '##.###.678-9'

formatToHiddenDigits('52.715.348/0001-69', { hider: '@', range: -9 })
//=> '52.715.@@@/@@@@-@@'

Conversores

parseToArray

Converte uma lista no formato brasileiro para um Array de string.

parseToArray('')
//=> []

parseToArray('1')
//=> ['1']

parseToArray('1 e 2')
//=> ['1', '2']

parseToArray('Fernanda, Luana e Ana Carolina')
//=> ['Fernanda', 'Luana', 'Ana Carolina']

parseToDate

Converte a data no formato brasileiro para uma instância de Date.

Lança um erro se o valor for inválido ou não corresponder a o formato de data brasileiro.

parseToDate('28/03/1996')
//=> Date('1996-03-28T03:00:00.000Z')

parseToDate('28/03/1996 20:00')
//=> Date('1996-03-28T23:00:00.000Z')

parseToDate('28/03/1996 20:00:00')
//=> Date('1996-03-28T23:00:00.000Z')

parseToDate('31/02/2018')
//=> throws Error('Value "31/02/2018" is an invalid date.')

parseToNumber

Converte o número no estilo brasileiro para um número.

parseToNumber('10')
//=> 10

parseToNumber('-1.299')
//=> -1299

parseToNumber('0,981')
//=> 0.981

parseToNumber('19.898,1298')
//=> 19898.1298

Validadores

isCEP

Verifica se é um CEP válido.

isCEP('50.833-000')
//=> true

isCEP('02998-050')
//=> true

isCEP('00000000')
//=> true

isCEP('0')
//=> false

isCEP('1982891928981982198')
//=> false

isCNPJ

Verifica se é um CNPJ válido.

Relacionado: isCPFOrCNPJ.

isCNPJ('41142260000189')
//=> true

isCNPJ('45.723.174/0001-10')
//=> true

isCNPJ('411407182')
//=> false

isCNPJ('11.111.111/1111-11')
//=> false

isCAEPF

Verifica se é um CAEPF válido.

isCAEPF('45723174000122')
//=> true

isCAEPF('457.231.740/001-22')
//=> false

isCAEPF('45.723.174/0001-22')
//=> false

isCAEPF('411407182')
//=> false

isCAEPF('111.111.111/111-11')
//=> false

isCPF

Verifica se é um CPF válido.

Relacionado: isCPFOrCNPJ.

isCPF('366.418.768-70')
//=> true

isCPF('36641876870')
//=> true

isCPF('213.198.013-20')
//=> false

isCPF('2131201872781')
//=> false

isCPF('11111111111')
//=> false

isCPFOrCNPJ

Verifica se é um CPF ou um CNPJ válido.

Relacionado: isCPF, isCNPJ.

isCPFOrCNPJ('366.418.768-70')
//=> true

isCPFOrCNPJ('36641876870')
//=> true

isCPFOrCNPJ('213.198.013-20')
//=> false

isCPFOrCNPJ('2131201872781')
//=> false

isCPFOrCNPJ('11111111111')
//=> false

isCPFOrCNPJ('41142260000189')
//=> true

isCPFOrCNPJ('45.723.174/0001-10')
//=> true

isCPFOrCNPJ('411407182')
//=> false

isCPFOrCNPJ('11.111.111/1111-11')
//=> false

isDate

Verifica se é uma data válida e se corresponde ao formato brasileiro.

isDate('03/08/2017')
//=> true

isDate('28/13/2017')
//=> false

isDate('03-08-2017')
//=> false

isDate('31/03/18')
//=> false

isDDD

Verifica se é um código DDD (discagem direta à distância) brasileiro válido.

Baseado na resolução nº 263, de 8 de junho de 2001.

isDDD('81')
//=> true

isDDD('10')
//=> false

isDDD('555')
//=> false

isPhone

Verifica se está em um formato comum de número de telefone brazileiro, opcionalmente com DDI, DDD e o nono dígito. Se o DDD estiver definido ele será verificado com isDDD.

isPhone('+55 (11) 9 8273-1182')
//=> true

isPhone('11 9 8273 1182')
//=> true

isPhone('1139723768')
//=> true

isPhone('(23) 3972-3768')
//=> false

isPhone('(13) 6 5093-2093')
//=> false

isPhone('(81) 555 178')
//=> false

Contribuindo

Docker

Caso queira rodar em um ambiente isolado(container) você pode usar o docker.

Primeiro construa a imagem em sua maquina

docker build -t brazilian-values:latest .

Após isso rode o ambiente em modo interativo

docker run -it -v ${PWD}:/usr/src/app brazilian-values:latest bash

Você entrara em um container com o ambiente isolado da maquina. rode o yarn install e pode começar a usar todo o projeto`

yarn install

Licença

Lançado sob a licença MIT.

FOSSA Status

More Repositories

1

typescript-library-boilerplate

Initialize it running "node ./setup.js". A TypeScript library boilerplate. Check types pretty strictly; generates CommonJS, ESM and UMD bundles with Rollup.js; setup unit tests with Jest; and generate docs from sources with Typedoc.
JavaScript
98
star
2

vue-uuid

Add UUID to Vue instance.
JavaScript
73
star
3

normalize-text

📝 Provides a simple functions to normalize texts, whitespaces, paragraphs & diacritics.
TypeScript
63
star
4

brazilian-geographic-data

🇧🇷 regiões, estados, cidades, bairros e outros dados geográficos brasileiros.
JavaScript
62
star
5

ts-jest-resolver

A resolver for jest that uses the same strategy as TS when resolving files with JavaScript extensions (".js", ".jsx", ".cjs" and ".mjs"). It works pretty well with ts-jest or babel with @babel/preset-typescript.
TypeScript
60
star
6

vue-data-tablee

Yeap, another Vue table component.
JavaScript
42
star
7

vue-burger-button

🍔 vue-burger-button is a functional component, which is faster than a regular component, and is pretty small (JS min+gzip is lower than 700b and CSS min+gzip is lower than 400b).
Vue
42
star
8

create-request

Apply interceptors to `fetch` and create a custom request function.
TypeScript
37
star
9

vue-flipper

A component to flip elements with a nice transition.
Vue
32
star
10

bitty

🗃 A mono-repository with functional programming helpers, algebraic data types, util functions, types and even some micro frameworks in TypeScript.
TypeScript
30
star
11

format-date

📆 A small library (around 400 B when gziped & minified) to format JavaScript `Date` object using same tokens as moment.
TypeScript
28
star
12

vue-loadable

⏳ Improve your loading state control with pretty simple methods and helpers.
TypeScript
26
star
13

vue-form-container

👜 A Provider Component that encapsulate your forms and handle their states and validations.
Vue
24
star
14

dev-demands

An example of Front-End and Back-End with Apollo GraphQL.
JavaScript
23
star
15

valite

🔥 Concurrently execute your validators in a simple, practical and light validator engine.
TypeScript
20
star
16

persistence

💾 Persistence provides a pretty easy API to handle Storage's implementations.
TypeScript
19
star
17

graphql-raw-loader

🍖 With Webpack, loads GraphQL files as raw strings and handle it's import directive & comment statement.
JavaScript
19
star
18

maybe

🌯 The prettiest TypeScript implementation of Maybe monad.
TypeScript
19
star
19

get

🚚 A really small and type-safe (requires TypeScript >= 4.1.3) function, that gets a nested value from an object using a path string (like "a.b[0].d"). If value is 'undefined' or unreachable returns the placeholder instead.
TypeScript
18
star
20

vuex-handler

Avoid try/catch and .catch() statements and globally handle successful and failed actions.
JavaScript
17
star
21

event-emitter

Emit and listen events in any class, object or function without messing them extending classes. And you can declare it with Fluent Interfaces or tree-shakeable functions.
TypeScript
17
star
22

uncouple

📂 Uncouple constructors and classes methods into functions.
TypeScript
14
star
23

vue-component-id

Generates an unique ID for every component.
JavaScript
13
star
24

animate

👾 Create and manage animation functions with AnimationFrame API.
TypeScript
13
star
25

check-package-usage

[🚧 WIP] A CLI that checks how a package is used in your source; shows unused packages; which packages are used in CommonJS/ESM; and other insights about your packages.
TypeScript
12
star
26

select-files

Virtually creates a file input element (<input type="file" />), triggers it and returns selected files.
TypeScript
12
star
27

reconstruct

👷 Iterate over properties and merge them into a new object.
TypeScript
11
star
28

use-object-url

React Hook to create and revoke URL for any instance of `File`, `Blob` or `MediaSource`.
TypeScript
11
star
29

cullender

Search data and create complex filters by compose filter functions.
JavaScript
10
star
30

react-hooks-for-backbone

React.js Hooks to connect your components with Backbone.js's models, events and collections.
TypeScript
8
star
31

exemplos-programacao-funcional-em-javascript-e-typescript

Exemplos e casos de uso de técnicas, estruturas de dados e patterns funcionais com JavaScript e TypeScript.
8
star
32

gulp-html-accents

Encodes accents and other diacritics into HTML Entities.
JavaScript
8
star
33

aliases-from-tsconfig

Reads a jsconfig/tsconfig.json baseUrl and paths and provides a methods to replace its aliases in your files paths.
TypeScript
8
star
34

insist

Insistently runs a callback and only resolves the promise when its result is truthy.
TypeScript
7
star
35

fetch-img

Fetch asynchronously an image using it's source and resolve as `HTMLImageElement`.
TypeScript
7
star
36

object-descriptors

A pretty well typed function to get object property descriptors. `Object.getOwnPropertyDescriptors` polyfill.
TypeScript
6
star
37

poi-plugin-dotenv

Loads .env variables into Poi's application.
JavaScript
6
star
38

vuex-shortly

JavaScript
6
star
39

mobx-valite-form-store

A MobX form store using `valite` as validator.
JavaScript
5
star
40

vue-router-on-bootstrap-templates

A silly example with @vue/cli and Onassis bootstrap template which shows how to handle template pages as vue-router's routes (views).
HTML
5
star
41

parse-sass-value

Parse JavaScript value to SASS. { color: 'red' } => ( 'color': red )
TypeScript
5
star
42

bubbles-animation

Simple <canvas> bubbles animation.
TypeScript
4
star
43

quivy

A micro-framework to quicky start your games and animations.
JavaScript
4
star
44

predicates

A collection of composable functions to check values.
TypeScript
4
star
45

poi-preset-resolve-extensions

Resolve extensions on Poi.
JavaScript
3
star
46

VitorLuizC.github.io

JavaScript
3
star
47

node-pombo

Just provide a random nice pombo ASCII draw (and its author's name).
JavaScript
3
star
48

estruturas-de-dados-puramente-funcionais

Anotações, pesquisas, experimentos e exercícios do curso de Estruturas de Dados Puramente Funcionais da UFABC.
Haskell
3
star
49

project-boilerplate

Basic & consistent boilerplate for open-source JavaScript applications.
3
star
50

shinsu

[WIP]
TypeScript
2
star
51

react-contact-list-application

Lista de contatos. É um aplicativo construído durante o Nanodegree de React na Udacity.
JavaScript
2
star
52

reconstruct-descriptors

Iterate over object's property descriptors and compose a new one.
JavaScript
2
star
53

vue-component-patterns

A curated collection of idiomatic component patterns for Vue.
2
star
54

convenia-assignment

Convenia assignment was done using Vue, Vuex & Axios.
Vue
2
star
55

p2p-javascript-based-mmorpg-game

TypeScript
2
star
56

jussi-assignment

JavaScript
2
star
57

TretaScript

Use glob to match entry files, transpile TypeScript to JavaScript (ES5) & keep same source folder's structure in dist.
TypeScript
2
star
58

vue-form-container-examples

Vue
2
star
59

task-list

A simple task list.
JavaScript
1
star
60

learning-graphics

Rust
1
star
61

typescript-utility-types

Um apanhado de tipos utilitários no TypeScript para copiar e colar.
1
star
62

book-market

A simple trade market system to offer, announce and trade your books.
JavaScript
1
star
63

boilerplate

Front-End stuff for web projects
CSS
1
star
64

react-native-anchor

TypeScript
1
star
65

functional-resources

Some pure-functions to deal with everything.
JavaScript
1
star
66

immutable-collection

TypeScript
1
star
67

react-async-task

React.js hooks to manage async tasks.
TypeScript
1
star
68

poi-quiet

It's just poi package without any stats log.
JavaScript
1
star
69

typescript-strict-number-types

[🚧 WIP] Define better types for JavaScript numbers and their functions.
JavaScript
1
star
70

VGA777

1
star
71

light-bulb

💡 Save and manage your ideas.
CSS
1
star
72

MyFirstBevyGame

I'm just following the Bevy Intro Tutorials from Logic Projects.
Rust
1
star
73

playground

TypeScript
1
star
74

boilerplate-cli

TypeScript
1
star
75

pxg-hunt-report

PokeXGames hunt report. Paste your log and see the data analysis.
JavaScript
1
star
76

corresponds

TypeScript
1
star
77

vue-form-components

Vue + Forms. A set of form components for Vue.
JavaScript
1
star
78

mobx-loadable-store

TypeScript
1
star
79

acerola-chat

Global and private chats without any registering.
JavaScript
1
star
80

mobiauto-assignment

JavaScript
1
star
81

nuxt-tasks

Exercises for Nuxt.js course (https://www.udemy.com/nuxtjs-vuejs-on-steroids).
Vue
1
star
82

UI-Compare

Compare UI components.
JavaScript
1
star
83

landing-bugginout

A pretty webpage for Buggin'Out Game!
Vue
1
star
84

react-my-reads-application

A Project for React Udacity Nanodegree.
JavaScript
1
star
85

benchmark

Benchmark between Front-End tools.
JavaScript
1
star
86

rollup-plugin-resolve-module

[WIP] Resolve files or modules for each bundle format (module type). Example: import lodash-es on ESM bundles and lodash on CommonJS ones.
TypeScript
1
star
87

use-input-formatted

React Hook to use formatted values on <input /> elements and components.
TypeScript
1
star
88

gulp-launch

Setup functions as tasks in multiple files.
JavaScript
1
star
89

notes

This repository is a GitHub Actions PoC on consuming static data and using manual workflows to manage them.
JavaScript
1
star
90

breakout

A breakout game based on Udemy course (http://bit.ly/2qHzcej).
JavaScript
1
star
91

node-livecoding

Material das aulas de Node.js com exercícios praticados em aula.
JavaScript
1
star
92

react-native-calendar-weeks

TypeScript
1
star
93

twinmill

API simples de um CMS escrita em Node.js.
JavaScript
1
star
94

predicate-tag

A JavaScript/TypeScript tagged template literals to create readable predicate functions.
TypeScript
1
star
95

react-bivu

React.js components used in my weeding site.
1
star