cpf-cnpj-validator
Version:
Valida e formata strings de CPF ou CNPJ.
90 lines (64 loc) • 2.27 kB
Markdown
Valida e formata strings de CPF ou CNPJ.
[![travis][travis-image]][travis-url]
[![npm][npm-image]][npm-url]
[]: https://travis-ci.org/carvalhoviniciusluiz/cpf-cnpj-validator.svg?branch=master
[]: https://travis-ci.org/carvalhoviniciusluiz/cpf-cnpj-validator
[]: https://img.shields.io/npm/v/cpf-cnpj-validator.svg?style=flat
[]: https://npmjs.org/package/cpf-cnpj-validator
```
npm i cpf-cnpj-validator -S
```
Requer Node ``>=8.0.0``.
```js
const { cpf } = require('cpf-cnpj-validator');
// gera um número de cpf
const num = cpf.generate();
// #=> 25634428777
// verifica se é um número válido
cpf.isValid(num);
// #=> true
// formata o número gerado
cpf.format(num);
// #=> 256.344.287-77
```
__NOTE__: os módulos de cpf e cnpj possuem métodos nomeados de forma igual diferindo se apenas os resultados.
```js
const { cnpj } = require('cpf-cnpj-validator');
// gera um número de cpnj
const num = cnpj.generate();
// #=> 58403919000106
// verifica se é um número válido
cnpj.isValid(num);
// #=> true
// formata o número gerado
cnpj.format(num);
// #=> 58.403.919/0001-06
```
Veja mais exemplos práticos consultando os testes para [CPF](./test/cpf.test.ts) e [CNPJ.](./test/cpf.test.ts)
[@hapi/joi](https://www.npmjs.com/package/@hapi/joi) é uma excelente biblioteca para validação de objetos javascript que permite a construção de mecanismos personalizados para tal.
A biblioteca [cpf-cnpj-validator](https://www.npmjs.com/package/cpf-cnpj-validator) disponibiliza um mecanismo personalizado para Joi capas de validar se uma string pode ser, ou não, um número válido de CPF ou CNPJ:
```js
const validator = require('cpf-cnpj-validator')
const Joi = require('@hapi/joi').extend(validator)
const cnpjSchema = Joi.document().cnpj();
const cpfSchema = Joi.document().cpf();
// valida o CPF
Joi.validate('54271113107', cpfSchema);
// #=> true
// valida o CNPJ
Joi.validate('38313108000107', cnpjSchema);
// #=> true
```
Maiores informações podem ser obtidas com o teste de [validação.](./test/index.test.ts)
```shell
npm test
```
[](http://opensource.org/licenses/MIT)
Copyright (c) 2018-present