validation-br 1.5.2 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/test/cnh.test.js +116 -0
- package/dist/test/cnh.test.js.map +1 -0
- package/dist/test/cnpj.test.js +181 -0
- package/dist/test/cnpj.test.js.map +1 -0
- package/dist/test/cpf.test.js +136 -0
- package/dist/test/cpf.test.js.map +1 -0
- package/dist/test/index.test.js +83 -0
- package/dist/test/index.test.js.map +1 -0
- package/dist/test/judicialProcess.test.js +124 -0
- package/dist/test/judicialProcess.test.js.map +1 -0
- package/dist/test/nup17.test.js +133 -0
- package/dist/test/nup17.test.js.map +1 -0
- package/dist/test/pisPasep.test.js +135 -0
- package/dist/test/pisPasep.test.js.map +1 -0
- package/dist/test/postalCode.test.js +123 -0
- package/dist/test/postalCode.test.js.map +1 -0
- package/dist/test/renavam.test.js +91 -0
- package/dist/test/renavam.test.js.map +1 -0
- package/dist/test/tituloEleitor.test.js +118 -0
- package/dist/test/tituloEleitor.test.js.map +1 -0
- package/dist/test/utils-applyMask.test.js +15 -0
- package/dist/test/utils-applyMask.test.js.map +1 -0
- package/dist/test/utils-checkRepeatedSequence.test.js +18 -0
- package/dist/test/utils-checkRepeatedSequence.test.js.map +1 -0
- package/dist/test/utils-clearValue.test.js +59 -0
- package/dist/test/utils-clearValue.test.js.map +1 -0
- package/dist/test/utils-fakeNumber.test.js +24 -0
- package/dist/test/utils-fakeNumber.test.js.map +1 -0
- package/dist/test/utils-insertAtPosition.test.js +16 -0
- package/dist/test/utils-insertAtPosition.test.js.map +1 -0
- package/dist/test/utils-randomLetter.test.js +11 -0
- package/dist/test/utils-randomLetter.test.js.map +1 -0
- package/dist/test/utils-removeFromPosition.test.js +12 -0
- package/dist/test/utils-removeFromPosition.test.js.map +1 -0
- package/dist/test/utils-sumElementsByMultipliers.test.js +23 -0
- package/dist/test/utils-sumElementsByMultipliers.test.js.map +1 -0
- package/dist/test/utils-sumToDV.test.d.ts +1 -0
- package/dist/test/utils-sumToDV.test.js +14 -0
- package/dist/test/utils-sumToDV.test.js.map +1 -0
- package/jest.config.js +1 -1
- package/package.json +2 -2
- package/readme.md +216 -184
- package/test/cnh.test.ts +113 -0
- package/test/cnpj.test.ts +179 -0
- package/test/cpf.test.ts +124 -0
- package/test/index.test.ts +85 -0
- package/test/judicialProcess.test.ts +120 -0
- package/test/nup17.test.ts +127 -0
- package/test/pisPasep.test.ts +126 -0
- package/test/postalCode.test.ts +114 -0
- package/test/renavam.test.ts +77 -0
- package/test/tituloEleitor.test.ts +110 -0
- package/test/utils-applyMask.test.ts +13 -0
- package/test/utils-checkRepeatedSequence.test.ts +17 -0
- package/test/utils-clearValue.test.ts +69 -0
- package/test/utils-fakeNumber.test.ts +28 -0
- package/test/utils-insertAtPosition.test.ts +15 -0
- package/test/utils-randomLetter.test.ts +9 -0
- package/test/utils-removeFromPosition.test.ts +10 -0
- package/test/utils-sumElementsByMultipliers.test.ts +24 -0
- package/test/utils-sumToDV.test.ts +12 -0
- package/tsconfig.json +3 -3
- package/.github/workflows/test.yml +0 -39
- package/dist/cnh.d.ts +0 -91
- package/dist/cnh.js +0 -139
- package/dist/cnh.js.map +0 -1
- package/dist/cnpj.d.ts +0 -114
- package/dist/cnpj.js +0 -180
- package/dist/cnpj.js.map +0 -1
- package/dist/cpf.d.ts +0 -99
- package/dist/cpf.js +0 -147
- package/dist/cpf.js.map +0 -1
- package/dist/data/ValidationBRError.d.ts +0 -6
- package/dist/data/ValidationBRError.js +0 -10
- package/dist/data/ValidationBRError.js.map +0 -1
- package/dist/index.d.ts +0 -21
- package/dist/index.js +0 -42
- package/dist/index.js.map +0 -1
- package/dist/judicialProcess.d.ts +0 -126
- package/dist/judicialProcess.js +0 -190
- package/dist/judicialProcess.js.map +0 -1
- package/dist/nup17.d.ts +0 -102
- package/dist/nup17.js +0 -155
- package/dist/nup17.js.map +0 -1
- package/dist/pisPasep.d.ts +0 -81
- package/dist/pisPasep.js +0 -126
- package/dist/pisPasep.js.map +0 -1
- package/dist/postalCode.d.ts +0 -83
- package/dist/postalCode.js +0 -136
- package/dist/postalCode.js.map +0 -1
- package/dist/renavam.d.ts +0 -75
- package/dist/renavam.js +0 -122
- package/dist/renavam.js.map +0 -1
- package/dist/tituloEleitor.d.ts +0 -93
- package/dist/tituloEleitor.js +0 -143
- package/dist/tituloEleitor.js.map +0 -1
- package/dist/utils-invalidListGenerator.test.d.ts +0 -1
- package/dist/utils-randomLetter.test.d.ts +0 -1
- package/dist/utils.d.ts +0 -131
- package/dist/utils.js +0 -190
- package/dist/utils.js.map +0 -1
- /package/dist/{cnh.test.d.ts → test/cnh.test.d.ts} +0 -0
- /package/dist/{cnpj.test.d.ts → test/cnpj.test.d.ts} +0 -0
- /package/dist/{cpf.test.d.ts → test/cpf.test.d.ts} +0 -0
- /package/dist/{index.test.d.ts → test/index.test.d.ts} +0 -0
- /package/dist/{judicialProcess.test.d.ts → test/judicialProcess.test.d.ts} +0 -0
- /package/dist/{nup17.test.d.ts → test/nup17.test.d.ts} +0 -0
- /package/dist/{pisPasep.test.d.ts → test/pisPasep.test.d.ts} +0 -0
- /package/dist/{postalCode.test.d.ts → test/postalCode.test.d.ts} +0 -0
- /package/dist/{renavam.test.d.ts → test/renavam.test.d.ts} +0 -0
- /package/dist/{tituloEleitor.test.d.ts → test/tituloEleitor.test.d.ts} +0 -0
- /package/dist/{utils-applyMask.test.d.ts → test/utils-applyMask.test.d.ts} +0 -0
- /package/dist/{utils-checkRepeatedSequence.test.d.ts → test/utils-checkRepeatedSequence.test.d.ts} +0 -0
- /package/dist/{utils-clearValue.test.d.ts → test/utils-clearValue.test.d.ts} +0 -0
- /package/dist/{utils-fakeNumber.test.d.ts → test/utils-fakeNumber.test.d.ts} +0 -0
- /package/dist/{utils-insertAtPosition.test.d.ts → test/utils-insertAtPosition.test.d.ts} +0 -0
- /package/dist/{utils-removeFromPosition.test.d.ts → test/utils-randomLetter.test.d.ts} +0 -0
- /package/dist/{utils-sumElementsByMultipliers.test.d.ts → test/utils-removeFromPosition.test.d.ts} +0 -0
- /package/dist/{utils-sumToDV.test.d.ts → test/utils-sumElementsByMultipliers.test.d.ts} +0 -0
package/readme.md
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# validation-br
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> **A primeira biblioteca a inserir o suporte ao CNPJ alfanumérico**
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Biblioteca de validação de documentos pessoais do Brasil com suporte a CPF, CNPJ (numérico e **alfanumérico**), Título Eleitoral, PIS/PASEP, CNH.
|
|
6
|
+
|
|
7
|
+
`Validation-BR` também valida numerações de outros tipos de registros como RENAVAM, Processos Judiciais, Número de Protocolo do Governo Federal e Objetos registrados de Rastreamento dos Correios, além de permitir a criação de números fake para facilitar o desenvolvimento e testes, aplicar máscaras e calcular somente os dígitos verificadores.
|
|
6
8
|
|
|
7
9
|
# Instalação
|
|
8
10
|
|
|
@@ -10,7 +12,6 @@ Validation-BR também permite criação de números fake para facilitar o desenv
|
|
|
10
12
|
# Usando yarn
|
|
11
13
|
yarn add validation-br
|
|
12
14
|
|
|
13
|
-
## OU
|
|
14
15
|
# Usando npm
|
|
15
16
|
npm install validation-br
|
|
16
17
|
|
|
@@ -20,69 +21,66 @@ npm install validation-br
|
|
|
20
21
|
|
|
21
22
|
## Importação direta
|
|
22
23
|
|
|
23
|
-
Permite realizar diretamente uma validação a partir do objeto principal
|
|
24
|
-
|
|
25
24
|
```js
|
|
26
25
|
// Modules
|
|
27
|
-
const { isCPF, isCNPJ } = require('validation-br')
|
|
26
|
+
const { isCPF, isCNPJ } = require('validation-br');
|
|
28
27
|
|
|
29
|
-
// ES6
|
|
30
|
-
import { isCPF, isCNPJ } from 'validation-br'
|
|
28
|
+
// ES6 - Importação a partir do objeto principal
|
|
29
|
+
import { isCPF, isCNPJ } from 'validation-br';
|
|
31
30
|
```
|
|
32
31
|
|
|
33
32
|
## Importação de submódulos
|
|
34
33
|
|
|
35
34
|
Importando os submódulos, é possível criar máscaras, números fake para testes de desenvolvimento e calcular dígitos verificadores.
|
|
36
35
|
|
|
37
|
-
|
|
36
|
+
> As funções dos exemplos abaixo se aplicam a todos os tipos de documentos.
|
|
38
37
|
|
|
39
38
|
```js
|
|
40
|
-
//
|
|
41
|
-
import {
|
|
42
|
-
//
|
|
43
|
-
|
|
39
|
+
// Importação direta
|
|
40
|
+
import { isCPF } from 'validation-br';
|
|
41
|
+
isCPF('01234567890'); // -> true
|
|
42
|
+
isCPF('01234567891'); // -> false
|
|
44
43
|
|
|
45
|
-
//
|
|
46
|
-
|
|
47
|
-
const { dv, fake, mask, validate } = require('validation-br/dist/cpf')
|
|
44
|
+
// Importe de submódulos
|
|
45
|
+
import { dv, fake, mask, validate } from 'validation-br/dist/cpf';
|
|
48
46
|
|
|
49
47
|
// Calculo do dígito verificador de um CPF. Os métodos aceitam inteiros e strings, inclusive com máscaras.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
48
|
+
dv(906259666); // -> '51'
|
|
49
|
+
dv('906259666'); // -> '51'
|
|
50
|
+
dv('906.259.666'); // -> '51'
|
|
53
51
|
|
|
54
52
|
// Cria um número fake de CPF para fins de testes.
|
|
55
|
-
|
|
53
|
+
fake(); // -> 90625966651
|
|
56
54
|
// Passe um parâmetro true para gerar o número com máscara
|
|
57
|
-
|
|
55
|
+
fake(true); // -> 906.259.666-51
|
|
58
56
|
|
|
59
57
|
// Aplique uma máscara a um cpf
|
|
60
|
-
|
|
58
|
+
mask(90625966651); // -> 906.259.666-51
|
|
61
59
|
|
|
62
|
-
//
|
|
63
|
-
|
|
60
|
+
// Normalize o número do documento
|
|
61
|
+
normalize('906.259.666-51'); // -> 90625966651
|
|
64
62
|
|
|
65
63
|
// Valida um número e retorna exceção se a validação falhar
|
|
66
|
-
|
|
64
|
+
validateOrFail('01234567890'); // -> true
|
|
67
65
|
```
|
|
68
66
|
|
|
69
67
|
## Tabela de Conteúdo
|
|
70
68
|
|
|
71
69
|
### Funções de Validação
|
|
72
70
|
|
|
73
|
-
- [
|
|
74
|
-
- [
|
|
75
|
-
- [
|
|
76
|
-
- [
|
|
77
|
-
- [
|
|
78
|
-
- [
|
|
79
|
-
- [
|
|
80
|
-
- [
|
|
81
|
-
- [
|
|
71
|
+
- [CNH](#cnh) - Validação do CNH
|
|
72
|
+
- [CPF](#cpf) - Validação do CPF
|
|
73
|
+
- [CNPJ](#cnpj) - Validação do CNPJ
|
|
74
|
+
- [NUP-17](#nup-17) - Validação de Número Unificado de Protocolo do Governo Federal
|
|
75
|
+
- [Processo Judicial](#processos-judiciais) - Validação de Números de Processos Judiciais
|
|
76
|
+
- [PIS](#pis) - Validação de PIS, PASEP, NIS e NIT
|
|
77
|
+
- [Código de Rastreamento Postal](#código-de-rastreamento-postal-dos-correios) - Validação de Objetos Registrados dos Correios
|
|
78
|
+
- [Renavam](#renavam) - Validação de RENAVAM
|
|
79
|
+
- [Titulo de Eleitor](#titulo-de-eleitor) - Validação do Título de Eleitor
|
|
82
80
|
|
|
83
|
-
|
|
81
|
+
## Usando em outras bibliotecas de validação
|
|
84
82
|
|
|
85
|
-
Validation-BR pode ser utilizado em conjunto com quaisquer bibliotecas de validação que permita estender seus métodos.
|
|
83
|
+
`Validation-BR` pode ser utilizado em conjunto com quaisquer bibliotecas de validação que permita estender seus métodos.
|
|
86
84
|
Abaixo seguem alguns exemplos. Sinta-se convidado a adicionar a sua biblioteca favorita em nosso wiki.
|
|
87
85
|
|
|
88
86
|
- [Vuelidate](https://github.com/klawdyo/validation-br/wiki/Vuelidate) - Usado para validação de estado no vuejs
|
|
@@ -91,105 +89,113 @@ Abaixo seguem alguns exemplos. Sinta-se convidado a adicionar a sua biblioteca f
|
|
|
91
89
|
- [Joi](https://github.com/klawdyo/validation-br/wiki/Joi) - Joi é um validador de esquemas usado em aplicações node, react, vue etc.
|
|
92
90
|
- [Yup](https://github.com/klawdyo/validation-br/wiki/Yup) - Yup é usado para validar estado em aplicações react.
|
|
93
91
|
|
|
94
|
-
|
|
92
|
+
## CNH
|
|
95
93
|
|
|
96
94
|
Valida o documento da carteira nacional de habilitação.
|
|
97
95
|
|
|
98
96
|
```js
|
|
99
|
-
// Importação
|
|
100
|
-
import { isCNH } from 'validation-br'
|
|
101
|
-
|
|
97
|
+
// Importação direta
|
|
98
|
+
import { isCNH } from 'validation-br';
|
|
99
|
+
isCNH('69044271146'); //-> true
|
|
100
|
+
isCNH('62472927637'); //-> true
|
|
101
|
+
isCNH('46190476839'); //-> false
|
|
102
|
+
|
|
102
103
|
// Importação do submódulo
|
|
103
|
-
import { validate, mask } from 'validation-br/dist/cnh'
|
|
104
|
-
// ou
|
|
105
|
-
import * as cnh from 'validation-br/dist/cnh'
|
|
104
|
+
import { validate, mask, normalize, fake, dv } from 'validation-br/dist/cnh';
|
|
106
105
|
|
|
107
106
|
// Valida
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
isCNH('46190476839') //-> false
|
|
111
|
-
cnh.validate('62472927637') //-> true
|
|
112
|
-
cnh.validateOrFail('62472927637') //-> true
|
|
107
|
+
validate('624729276-37'); //-> true
|
|
108
|
+
validateOrFail('62472927637'); //-> true
|
|
113
109
|
|
|
114
110
|
// Número fake com e sem máscara
|
|
115
|
-
|
|
116
|
-
|
|
111
|
+
fake(); // -> 62472927637
|
|
112
|
+
fake(true); // -> 624729276-37
|
|
117
113
|
|
|
118
114
|
// Aplica uma máscara
|
|
119
|
-
|
|
115
|
+
mask('62472927637'); // -> 624729276-37
|
|
116
|
+
|
|
117
|
+
// Normalize o número do documento
|
|
118
|
+
normalize('624729276-37'); // -> 62472927637
|
|
120
119
|
|
|
121
120
|
// Calcula o DV
|
|
122
|
-
|
|
121
|
+
dv('624729276'); // -> '37'
|
|
123
122
|
```
|
|
124
123
|
|
|
125
|
-
|
|
124
|
+
## CNPJ
|
|
126
125
|
|
|
127
|
-
Valida um CNPJ
|
|
126
|
+
Valida um CNPJ **numérico** e **alfanumérico**.
|
|
128
127
|
|
|
128
|
+
> **Primeira biblioteca a inserir o suporte ao CNPJ alfanumérico.**
|
|
129
|
+
>
|
|
129
130
|
> A partir da [Nota Técnica conjunta COCAD/SUARA/RFB nº 49 de 14 de maio de 2024](https://github.com/user-attachments/files/15851229/Nota.COCAD.SUARA.2024.05.49.CNPJ.Alfanumerico-1.pdf), os números de CNPJ poderão ser alfanuméricos. A alteração entra em uso em 2026.
|
|
130
131
|
|
|
131
132
|
```js
|
|
132
|
-
// Importação
|
|
133
|
-
import { isCNPJ } from 'validation-br'
|
|
133
|
+
// Importação direta
|
|
134
|
+
import { isCNPJ } from 'validation-br';
|
|
135
|
+
isCNPJ('73.797.980/0001-79'); //-> true
|
|
136
|
+
isCNPJ('55585709000198'); //-> true
|
|
137
|
+
isCNPJ('99362238000180'); //-> false
|
|
138
|
+
|
|
134
139
|
// ou
|
|
135
140
|
// Importação do submódulo
|
|
136
|
-
import { validate, mask } from 'validation-br/dist/cnpj'
|
|
137
|
-
// ou
|
|
138
|
-
import * as cnpj from 'validation-br/dist/cnpj'
|
|
141
|
+
import { validate, mask, dv, normalize, fake, validateOrFail } from 'validation-br/dist/cnpj';
|
|
139
142
|
|
|
140
143
|
// Valida
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
cnpj.validate('99362238000180') //-> true
|
|
145
|
-
cnpj.validateOrFail('99362238000180') //-> true
|
|
144
|
+
|
|
145
|
+
validate('99362238000180'); //-> true
|
|
146
|
+
validateOrFail('99362238000180'); //-> true
|
|
146
147
|
|
|
147
148
|
// Número fake com e sem máscara
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
149
|
+
fake(); // -> 55585709000198
|
|
150
|
+
fake(true); // -> 55.585.709/0001-98
|
|
151
|
+
fake({ withMask: true }); // -> 55.585.709/0001-98
|
|
152
|
+
fake({ withMask: true, alphanumeric: true }); // -> A1.222.333/0001-50
|
|
153
|
+
fake({ withMask: false, alphanumeric: true }); // -> A1222333/0001-50
|
|
153
154
|
|
|
154
155
|
// Aplica uma máscara
|
|
155
|
-
|
|
156
|
+
mask('99362238000180'); // -> 99.362.238/0001-80
|
|
157
|
+
|
|
158
|
+
// Normalize o número do documento
|
|
159
|
+
normalize('99.362.238/0001-80'); // -> 99362238000180
|
|
156
160
|
|
|
157
161
|
// Calcula o DV
|
|
158
|
-
|
|
162
|
+
dv('993622380001'); // -> '80'
|
|
159
163
|
```
|
|
160
164
|
|
|
161
|
-
|
|
165
|
+
## CPF
|
|
162
166
|
|
|
163
167
|
Valida um CPF
|
|
164
168
|
|
|
165
169
|
```js
|
|
166
|
-
// Importação
|
|
167
|
-
import { isCPF } from 'validation-br'
|
|
170
|
+
// Importação direta
|
|
171
|
+
import { isCPF } from 'validation-br';
|
|
172
|
+
isCPF('01234567890'); //-> true
|
|
173
|
+
isCPF('012.345.678-90'); //-> true
|
|
174
|
+
isCPF('01234567891'); //-> false
|
|
175
|
+
|
|
168
176
|
// ou
|
|
169
177
|
// Importação do submódulo
|
|
170
|
-
import { validate, mask } from 'validation-br/dist/cpf'
|
|
171
|
-
// ou
|
|
172
|
-
import * as cpf from 'validation-br/dist/cpf'
|
|
178
|
+
import { validate, mask, dv, normalize, fake, validateOrFail } from 'validation-br/dist/cpf';
|
|
173
179
|
|
|
174
180
|
// Valida
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
isCPF('01234567891') //-> false
|
|
178
|
-
cpf.validate('01234567890') //-> true
|
|
179
|
-
cpf.validateOrFail('01234567890') //-> true
|
|
181
|
+
validate('01234567890'); //-> true
|
|
182
|
+
validateOrFail('01234567890'); //-> true
|
|
180
183
|
|
|
181
184
|
// Número fake com e sem máscara
|
|
182
|
-
|
|
183
|
-
|
|
185
|
+
fake(); // -> 01234567891
|
|
186
|
+
fake(true); // -> 012.345.678-91
|
|
184
187
|
|
|
185
188
|
// Aplica uma máscara
|
|
186
|
-
|
|
189
|
+
mask('01234567890'); // -> 012.345.678-90
|
|
190
|
+
|
|
191
|
+
// Normalize o número do documento
|
|
192
|
+
normalize('012.345.678-90'); // -> 01234567890
|
|
187
193
|
|
|
188
194
|
// Calcula o DV
|
|
189
|
-
|
|
195
|
+
dv('012345678'); // -> '90'
|
|
190
196
|
```
|
|
191
197
|
|
|
192
|
-
|
|
198
|
+
## Processos Judiciais
|
|
193
199
|
|
|
194
200
|
Valida números de processo da esfera judicial. Esta padronização foi adotada em 2010 e de lá para cá todos os processos judiciais abertos no país seguem o mesmo padrão, seja eleitoral, cível, militar etc.
|
|
195
201
|
|
|
@@ -214,34 +220,41 @@ O número é composto por 6 partes:
|
|
|
214
220
|
6. Código da unidade de origem do processo com 4 caracteres
|
|
215
221
|
|
|
216
222
|
```js
|
|
217
|
-
// Importação
|
|
218
|
-
import { isJudicialProcess } from 'validation-br'
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
// ou
|
|
223
|
-
import * as judicialProcess from 'validation-br/dist/judicialProcess'
|
|
223
|
+
// Importação direta
|
|
224
|
+
import { isJudicialProcess } from 'validation-br';
|
|
225
|
+
isJudicialProcess('20802520125150049'); //-> true
|
|
226
|
+
isJudicialProcess('0011006-07.2016.8.20.0100'); //-> true
|
|
227
|
+
isJudicialProcess('00110060720168200101'); //-> false
|
|
224
228
|
|
|
225
|
-
//
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
229
|
+
// Importação do submódulo
|
|
230
|
+
import {
|
|
231
|
+
validate,
|
|
232
|
+
mask,
|
|
233
|
+
dv,
|
|
234
|
+
normalize,
|
|
235
|
+
fake,
|
|
236
|
+
validateOrFail,
|
|
237
|
+
} from 'validation-br/dist/judicialProcess';
|
|
238
|
+
|
|
239
|
+
validate('00110060720168200100'); //-> true
|
|
240
|
+
validateOrFail('00110060720168200100'); //-> true
|
|
231
241
|
|
|
232
242
|
// Número fake com e sem máscara
|
|
233
|
-
|
|
234
|
-
|
|
243
|
+
fake(); // -> 00110060720168200100
|
|
244
|
+
fake(true); // -> 0011006-07.2016.8.20.0100
|
|
235
245
|
|
|
236
246
|
// Aplica uma máscara
|
|
237
|
-
|
|
247
|
+
mask('00110060720168200100'); // -> 0011006-07.2016.8.20.0100
|
|
248
|
+
|
|
249
|
+
// Normalize o número do documento
|
|
250
|
+
normalize('0011006-07.2016.8.20.0100'); // -> 00110060720168200100
|
|
238
251
|
|
|
239
252
|
// Calcula o DV.
|
|
240
253
|
// Obs.: Antes do cálculo, é necessário que o número do processo não possua o dígito verificador para que o resultado seja correto. Isso é necessário pois o DV fica no meio da numeração, na posição 8 e 9.
|
|
241
|
-
|
|
254
|
+
dv('001100620168200100'); // -> '07'
|
|
242
255
|
```
|
|
243
256
|
|
|
244
|
-
|
|
257
|
+
## NUP-17
|
|
245
258
|
|
|
246
259
|
Válida um Número Unificado de Protocolo de 17 dígitos. Esta numeração é usada pelo Governo Federal como forma única de numerar processos em todas os órgãos do executivo.
|
|
247
260
|
|
|
@@ -251,64 +264,68 @@ Válida um Número Unificado de Protocolo de 17 dígitos. Esta numeração é us
|
|
|
251
264
|
4. Os caracteres 16 a 17 são o dígito verificador
|
|
252
265
|
|
|
253
266
|
```js
|
|
254
|
-
// Importação
|
|
255
|
-
import { isNUP17 } from 'validation-br'
|
|
267
|
+
// Importação direta
|
|
268
|
+
import { isNUP17 } from 'validation-br';
|
|
269
|
+
isNUP17('23037001462202165'); //-> true
|
|
270
|
+
isNUP17('23037.001462/2021-65'); //-> true
|
|
271
|
+
isNUP17('23037.001462/2021-66'); //-> false
|
|
272
|
+
|
|
256
273
|
// ou
|
|
257
274
|
// Importação do submódulo
|
|
258
|
-
import { validate, mask } from 'validation-br/dist/nup17'
|
|
259
|
-
// ou
|
|
260
|
-
import * as nup from 'validation-br/dist/nup17'
|
|
275
|
+
import { validate, mask, dv, normalize, fake, validateOrFail } from 'validation-br/dist/nup17';
|
|
261
276
|
|
|
262
277
|
// Valida
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
isNUP17('23037.001462/2021-66') //-> false
|
|
266
|
-
nup.validate('23037.001462/2021-65') //-> true
|
|
267
|
-
nup.validateOrFail('23037.001462/2021-65') //-> true
|
|
278
|
+
validate('23037.001462/2021-65'); //-> true
|
|
279
|
+
validateOrFail('23037.001462/2021-65'); //-> true
|
|
268
280
|
|
|
269
281
|
// Número fake com e sem máscara
|
|
270
|
-
|
|
271
|
-
|
|
282
|
+
fake(); // -> 23037001462202165
|
|
283
|
+
fake(true); // -> 23037.001462/2021-65
|
|
272
284
|
|
|
273
285
|
// Aplica uma máscara
|
|
274
|
-
|
|
286
|
+
mask('23037001462202165'); // -> 23037.001462/2021-65
|
|
287
|
+
|
|
288
|
+
// Normalize o número do documento
|
|
289
|
+
normalize('23037.001462/2021-65'); // -> 23037001462202165
|
|
275
290
|
|
|
276
291
|
// Calcula o DV
|
|
277
|
-
|
|
292
|
+
dv('230370014622021'); // -> '65'
|
|
278
293
|
```
|
|
279
294
|
|
|
280
|
-
|
|
295
|
+
## PIS
|
|
281
296
|
|
|
282
297
|
Valida códigos PIS, PASEP, NIS e NIT, que usam o mesmo algoritmo. Aceita números com e sem pontos e traços.
|
|
283
298
|
|
|
284
299
|
```js
|
|
285
|
-
// Importação
|
|
286
|
-
import { isPIS } from 'validation-br'
|
|
300
|
+
// Importação direta
|
|
301
|
+
import { isPIS } from 'validation-br';
|
|
302
|
+
isPIS('71282677380'); //-> true
|
|
303
|
+
isPIS('237.95126.95-5'); //-> true
|
|
304
|
+
isPIS('500.12973.80-1'); //-> false
|
|
305
|
+
|
|
287
306
|
// ou
|
|
288
307
|
// Importação do submódulo
|
|
289
|
-
import { validate, mask } from 'validation-br/dist/pisPasep'
|
|
290
|
-
// ou
|
|
291
|
-
import * as pis from 'validation-br/dist/pisPasep'
|
|
308
|
+
import { validate, mask, dv, normalize, fake, validateOrFail } from 'validation-br/dist/pisPasep';
|
|
292
309
|
|
|
293
310
|
// Valida
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
isPIS('500.12973.80-1') //-> false
|
|
297
|
-
pis.validate('71282677380') //-> true
|
|
298
|
-
pis.validateOrFail('71282677380') //-> true
|
|
311
|
+
validate('71282677380'); //-> true
|
|
312
|
+
validateOrFail('71282677380'); //-> true
|
|
299
313
|
|
|
300
314
|
// Número fake com e sem máscara
|
|
301
|
-
|
|
302
|
-
|
|
315
|
+
fake(); // -> 71282677380
|
|
316
|
+
fake(true); // -> 712.82677.38-0
|
|
317
|
+
|
|
318
|
+
// Normalize o número do documento
|
|
319
|
+
normalize('712.82677.38-0'); // -> 71282677380
|
|
303
320
|
|
|
304
321
|
// Aplica uma máscara
|
|
305
|
-
|
|
322
|
+
mask('71282677380'); // -> 712.82677.38-0
|
|
306
323
|
|
|
307
324
|
// Calcula o DV
|
|
308
|
-
|
|
325
|
+
dv('7128267738'); // -> '0'
|
|
309
326
|
```
|
|
310
327
|
|
|
311
|
-
|
|
328
|
+
## Código de Rastreamento Postal dos Correios
|
|
312
329
|
|
|
313
330
|
Valida um código de rastreamento de objetos postais no formato XX00000000DYY, onde:
|
|
314
331
|
|
|
@@ -318,112 +335,127 @@ Valida um código de rastreamento de objetos postais no formato XX00000000DYY, o
|
|
|
318
335
|
- YY: País de origem do objeto com 2 dígitos.
|
|
319
336
|
|
|
320
337
|
```js
|
|
321
|
-
// Importação
|
|
322
|
-
import { isPostalCode } from 'validation-br'
|
|
338
|
+
// Importação direta
|
|
339
|
+
import { isPostalCode } from 'validation-br';
|
|
340
|
+
isPostalCode('PN718252423BR'); //-> true
|
|
341
|
+
isPostalCode('RY728187035CN'); //-> true
|
|
342
|
+
isPostalCode('JT194624698BR'); //-> false
|
|
343
|
+
|
|
323
344
|
// ou
|
|
324
345
|
// Importação do submódulo
|
|
325
|
-
import { validate, mask } from 'validation-br/dist/postalCode'
|
|
326
|
-
// ou
|
|
327
|
-
import * as postalCode from 'validation-br/dist/postalCode'
|
|
346
|
+
import { validate, mask, dv, normalize, fake, validateOrFail } from 'validation-br/dist/postalCode';
|
|
328
347
|
|
|
329
348
|
// Valida
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
isPostalCode('JT194624698BR') //-> false
|
|
333
|
-
postalCode.validate('PN718252423BR') //-> true
|
|
334
|
-
postalCode.validateOrFail('PN718252423BR') //-> true
|
|
349
|
+
validate('PN718252423BR'); //-> true
|
|
350
|
+
validateOrFail('PN718252423BR'); //-> true
|
|
335
351
|
|
|
336
352
|
// Número fake com e sem máscara.
|
|
337
|
-
|
|
338
|
-
|
|
353
|
+
fake(); // -> PN718252423BR
|
|
354
|
+
fake(true); // -> PN718252423BR
|
|
339
355
|
|
|
340
356
|
// Aplica uma máscara
|
|
341
|
-
// No caso de PostalCode, a máscara apenas coloca as letras em maiúsculas
|
|
342
|
-
|
|
357
|
+
// No caso de PostalCode, a máscara apenas coloca as letras em maiúsculas, servindo como normalização
|
|
358
|
+
mask('pn718252423br'); // -> PN718252423BR
|
|
359
|
+
|
|
360
|
+
// Normalize o número do documento
|
|
361
|
+
normalize('pn718252423br'); // -> PN718252423BR
|
|
343
362
|
|
|
344
363
|
// Calcula o DV
|
|
345
|
-
|
|
364
|
+
dv('PN718252423BR'); // -> '3'
|
|
346
365
|
```
|
|
347
366
|
|
|
348
|
-
|
|
367
|
+
## RENAVAM
|
|
349
368
|
|
|
350
369
|
Valida o número de um RENAVAM de 11 dígitos
|
|
351
370
|
|
|
352
371
|
```js
|
|
353
|
-
// Importação
|
|
354
|
-
import { isRenavam } from 'validation-br'
|
|
372
|
+
// Importação direta
|
|
373
|
+
import { isRenavam } from 'validation-br';
|
|
374
|
+
isRenavam('14283256656'); //-> true
|
|
375
|
+
isRenavam('95059845976'); //-> true
|
|
376
|
+
isRenavam('67747331626'); //-> false
|
|
377
|
+
|
|
355
378
|
// ou
|
|
356
379
|
// Importação do submódulo
|
|
357
|
-
import { validate, mask } from 'validation-br/dist/renavam'
|
|
358
|
-
// ou
|
|
359
|
-
import * as renavam from 'validation-br/dist/renavam'
|
|
380
|
+
import { validate, mask, dv, normalize, fake, validateOrFail } from 'validation-br/dist/renavam';
|
|
360
381
|
|
|
361
382
|
// Valida
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
isRenavam('67747331626') //-> false
|
|
365
|
-
renavam.validate('95059845976') //-> true
|
|
366
|
-
renavam.validateOrFail('95059845976') //-> true
|
|
383
|
+
validate('95059845976'); //-> true
|
|
384
|
+
validateOrFail('95059845976'); //-> true
|
|
367
385
|
|
|
368
386
|
// Número fake com e sem máscara
|
|
369
|
-
|
|
370
|
-
|
|
387
|
+
fake(); // -> 95059845976
|
|
388
|
+
fake(true); // -> 9505984597-6
|
|
389
|
+
|
|
390
|
+
// Normaliza o número do documento
|
|
391
|
+
normalize('9505984597-6'); // -> 95059845976
|
|
371
392
|
|
|
372
393
|
// Aplica uma máscara
|
|
373
|
-
|
|
394
|
+
mask('95059845976'); // -> 9505984597-6
|
|
374
395
|
|
|
375
396
|
// Calcula o DV
|
|
376
|
-
|
|
397
|
+
dv('950598459'); // -> '76'
|
|
377
398
|
```
|
|
378
399
|
|
|
379
|
-
|
|
400
|
+
## Título de Eleitor
|
|
380
401
|
|
|
381
402
|
Valida um título eleitoral
|
|
382
403
|
|
|
383
404
|
```js
|
|
384
|
-
// Importação
|
|
385
|
-
import { isTituloEleitor } from 'validation-br'
|
|
386
|
-
|
|
405
|
+
// Importação direta
|
|
406
|
+
import { isTituloEleitor } from 'validation-br';
|
|
407
|
+
isTituloEleitor('743650641660'); //-> true
|
|
408
|
+
isTituloEleitor('525028881694'); //-> true
|
|
409
|
+
isTituloEleitor('153016161686'); //-> false
|
|
410
|
+
|
|
387
411
|
// Importação do submódulo
|
|
388
|
-
import {
|
|
389
|
-
|
|
390
|
-
|
|
412
|
+
import {
|
|
413
|
+
validate,
|
|
414
|
+
mask,
|
|
415
|
+
dv,
|
|
416
|
+
normalize,
|
|
417
|
+
fake,
|
|
418
|
+
validateOrFail,
|
|
419
|
+
} from 'validation-br/dist/tituloEleitor';
|
|
391
420
|
|
|
392
421
|
// Valida
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
isTituloEleitor('153016161686') //-> false
|
|
396
|
-
titulo.validate('01234567890') //-> true
|
|
397
|
-
titulo.validateOrFail('01234567890') //-> true
|
|
422
|
+
validate('01234567890'); //-> true
|
|
423
|
+
validateOrFail('01234567890'); //-> true
|
|
398
424
|
|
|
399
425
|
// Número fake com e sem máscara
|
|
400
|
-
|
|
401
|
-
|
|
426
|
+
fake(); // -> 153016161686
|
|
427
|
+
fake(true); // -> 1530.1616.1686
|
|
428
|
+
|
|
429
|
+
// Normalize o número do documento
|
|
430
|
+
normalize('1530.1616.1686'); // -> 153016161686
|
|
402
431
|
|
|
403
432
|
// Aplica uma máscara
|
|
404
|
-
|
|
433
|
+
mask('525028881694'); // -> 5250.2888.1694
|
|
405
434
|
|
|
406
435
|
// Calcula o DV
|
|
407
|
-
|
|
436
|
+
dv('5250288816'); // -> '94'
|
|
408
437
|
```
|
|
409
438
|
|
|
410
439
|
# Testes
|
|
411
440
|
|
|
412
441
|
Todos os testes passando com 100% de cobertura
|
|
413
442
|
|
|
414
|
-

|
|
415
444
|
|
|
416
445
|
# Github Actions
|
|
417
446
|
|
|
418
447
|
Github actions executados nas versões 18, 20 e 22 do Node.
|
|
419
448
|
|
|
420
|
-

|
|
421
450
|
|
|
422
451
|
# Changelog
|
|
423
452
|
|
|
453
|
+
- **25/12/2025**:
|
|
454
|
+
- 1.6.0
|
|
455
|
+
- Incluída a função normalize() que retorna o valor normalizado, somente números (ou letras maiúsculas quando couber).
|
|
424
456
|
- **16/12/2023**:
|
|
425
457
|
- 1.5.0
|
|
426
|
-
- CNPJ alfanumérico
|
|
458
|
+
- CNPJ alfanumérico
|
|
427
459
|
- Removidos github actions dos node 12, 14 e 16 e acrescentado o 22
|
|
428
460
|
- **16/12/2023**:
|
|
429
461
|
- 1.4.5
|