@dmalbuquerque/cpf-cnpj-validator

中文文档
1.0.3发布于 2025/03/10MITTypeScriptCommonJS近 30 天下载 2306

Biblioteca para gerar, validar e formatar CPF, CNPJ e CNPJ alfanumérico com suporte para integração com Joi.

原始使用文档
文档目录12 节
  1. Instalação
  2. Como importar a biblioteca
  3. Para projetos com Typescript
  4. Para projetos com Javascript
  5. Como usar
  6. CPF
  7. CNPJ
  8. Validação com Joi
  9. 🔹 Regras de Validação
  10. Testes Automatizados
  11. Como Contribuir
  12. ✔️ Licença

License Version

Documentação da Biblioteca de CPF e CNPJ

O objetivo do projeto é facilitar a validação e geração de CPF, CNPJ e CNPJ alfanumérico. Também é possível validar CPF e CNPJ utilizando a biblioteca Joi.

Instalação

npm install @dmalbuquerque/cpf-cnpj-validator

Como importar a biblioteca

Para projetos com Typescript

import { cpf, cnpj, documentValidator} from '@dmalbuquerque/cpf-cnpj-validator';

console.log(cpf.isValid('21156032300'));
console.log(cnpj.isValid('20245526000149'));

Para projetos com Javascript

const { cpf, cnpj, documentValidator} = require('@dmalbuquerque/cpf-cnpj-validator');

console.log(cpf.isValid('21156032300'));
console.log(cnpj.isValid('20245526000149'));

ou

const documents = require('@dmalbuquerque/cpf-cnpj-validator');

console.log(documents.cpf.isValid('21156032300'));
console.log(documents.cnpj.isValid('20245526000149'));

Como usar

CPF

Gerar um CPF

  • CPF numérico sem formatação:
    cpf.generate(); // Exemplo de retorno: "07208766053"
    
  • CPF formatado:
    cpf.generate({ formatted: true }); // Exemplo de retorno: "072.087.660-53"
    

Validar um CPF

  • CPF válido:
    cpf.isValid("07208766053"); // Retorna: true
    cpf.isValid("072.087.660-53"); // Retorna: true
    
  • CPF inválido:
    cpf.isValid("07208766050"); // Retorna: false
    cpf.isValid("072.087.660-50"); // Retorna: false
    

Formatar um CPF

  • Converter um CPF numérico para o formato padrão:
    cpf.format("07208766053"); // Retorna: "072.087.660-53"
    

CNPJ

Gerar um CNPJ

  • CNPJ clássico sem formatação:

    cnpj.generate({ type: "numeric" }); // Exemplo de retorno: "25143815000150"
    

    ou

    cnpj.generate();
    
  • CNPJ clássico formatado:

    cnpj.generate({ type: "numeric", formatted: true }); // Exemplo de retorno: "25.143.815/0001-50"
    
  • CNPJ alfanumérico sem formatação:

    cnpj.generate({ type: "alfanumeric" }); // Exemplo de retorno: "OGZP0N77444Y42"
    
  • CNPJ alfanumérico formatado:

    cnpj.generate({ type: "alfanumeric", formatted: true }); // Exemplo de retorno: "OG.ZP0.N77/444Y-42"
    

Validar um CNPJ

  • CNPJ clássico válido:
    cnpj.isValid("25143815000150"); // Retorna: true
    cnpj.isValid("25.143.815/0001-50"); // Retorna: true
    
  • CNPJ clássico inválido:
    cnpj.isValid("25143815000140"); // Retorna: false
    cnpj.isValid("25.143.815/0001-40"); // Retorna: false
    
  • CNPJ alfanumérico válido:
    cnpj.isValid("OGZP0N77444Y42"); // Retorna: true
    cnpj.isValid("OG.ZP0.N77/444Y-42"); // Retorna: true
    
  • CNPJ alfanumérico inválido:
    cnpj.isValid("OGZP0N77444Y40"); // Retorna: false
    cnpj.isValid("OG.ZP0.N77/444Y-40"); // Retorna: false
    

Formatar um CNPJ

  • Converter um CNPJ numérico para o formato padrão:
    cnpj.format("25143815000150"); // Retorna: "25.143.815/0001-50"
    
  • Converter um CNPJ alfanumérico para o formato padrão:
    cnpj.format("OGZP0N77444Y42"); // Retorna: "OG.ZP0.N77/444Y-42"
    

Validação com Joi

Esta biblioteca também permite a validação de CPF e CNPJ utilizando a biblioteca Joi. Veja um exemplo de implementação:

import Joi from "joi";
import documentValidator from "@dmalbuquerque/cpf-cnpj-validator";

const joi = Joi.extend(documentValidator);

const schema = Joi.object({
  cpf: joi.document().cpf().optional().label("CPF"),
  cnpj: joi.document().cnpj().required().label("CNPJ"),
});

const resultado = schema.validate({ cpf: null, cnpj: "25143815000150" });
console.log(resultado.error ? resultado.error.details : "Dados válidos!");

🔹 Regras de Validação

CenárioCPFCNPJResultado
Valor null✅ Aceito✅ Aceito✅ Válido
String vazia ("")❌ CPF não pode ser vazio❌ CNPJ não pode ser vazio❌ Erro
Campo obrigatório ausente❌ CPF é obrigatório❌ CNPJ é obrigatório❌ Erro

Testes Automatizados

Esta biblioteca possui testes automatizados para garantir a qualidade do código. Para rodá-los localmente, basta executar o seguinte comando:

npm run test

Isso irá rodar todos os testes definidos usando o Jest. Certifique-se de ter o Jest instalado em seu ambiente de desenvolvimento.

Como Contribuir

Se você deseja contribuir para este projeto, siga as etapas abaixo:

  1. Faça um fork deste repositório.
  2. Clone o repositório forkado para o seu ambiente local.
  3. Instale as dependências do projeto: npm install.
  4. Faça suas alterações e testes.
  5. Execute os testes localmente para garantir que tudo esteja funcionando corretamente: npm run test
  6. Crie uma nova branch para suas alterações: git checkout -b minha-feature.
  7. Abra o PR com suas alterações.

✔️ Licença

Destribuido sob a licença MIT. © Daniel Albuquerque

版本与发布记录

@dmalbuquerque/cpf-cnpj-validator 共发布 4 个版本,首次发布于 2025/03/10;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.0.3latest2025/03/101.7 年前
1.0.22025/03/101.7 年前
1.0.12025/03/101.7 年前
1.0.02025/03/101.7 年前

关于 @dmalbuquerque/cpf-cnpj-validator 的常见问题

@dmalbuquerque/cpf-cnpj-validator 是什么?

Biblioteca para gerar, validar e formatar CPF, CNPJ e CNPJ alfanumérico com suporte para integração com Joi.

如何安装 @dmalbuquerque/cpf-cnpj-validator?

在项目目录运行 npm install @dmalbuquerque/cpf-cnpj-validator,或使用 pnpm add / yarn add / bun add。

@dmalbuquerque/cpf-cnpj-validator 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@dmalbuquerque/cpf-cnpj-validator 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@dmalbuquerque/cpf-cnpj-validator 可以商用吗?

@dmalbuquerque/cpf-cnpj-validator 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@dmalbuquerque/cpf-cnpj-validator 的下载量有多少?

根据 npm 官方下载统计,@dmalbuquerque/cpf-cnpj-validator 在 2026/10/13 – 2026/11/11 这 30 天内被下载 2,306 次,日均约 77 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@dmalbuquerque/cpf-cnpj-validator 还在维护吗?

最新版本 1.0.3 发布于 2025/03/10(1.7 年前);至今共发布 4 个版本,其中过去 12 个月发布了 0 个;首次发布于 2025/03/10。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。