npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

cpf-cnpj-formatter

v1.0.6

Published

A simple formatter for CPF and CNPJ numbers

Readme

CPF/CNPJ Formatter

English | Português

English

A simple JavaScript utility to format CPF and CNPJ numbers automatically based on the input length.

Installation

npm install cpf-cnpj-formatter

Usage

const formatCPFCNPJ = require('cpf-cnpj-formatter');

// Format as CPF (11 digits or less)
console.log(formatCPFCNPJ('12345678901')); // Output: 123.456.789-01
console.log(formatCPFCNPJ('123456789')); // Output: 123.456.789

// Format as CNPJ (more than 11 digits)
console.log(formatCPFCNPJ('12345678901234')); // Output: 12.345.678/9012-34
console.log(formatCPFCNPJ('123456789012')); // Output: 12.345.678/9012

Features

  • Automatically detects if the input should be formatted as CPF or CNPJ based on length
  • Removes all non-numeric characters from input
  • Limits CPF to 11 digits
  • Limits CNPJ to 14 digits
  • Formats CPF as XXX.XXX.XXX-XX
  • Formats CNPJ as XX.XXX.XXX/XXXX-XX

React Example

import React, { useState } from 'react';
import { useForm } from 'react-hook-form';
import formatCPFCNPJ from 'cpf-cnpj-formatter';

const Example = () => {
  const { register, handleSubmit, setValue } = useForm();
  const [maskedValue, setMaskedValue] = useState('');

  const handleInputChange = (e) => {
    const value = e.target.value;
    const numbers = value.replace(/\D/g, '');
    const limitedNumbers = numbers.length <= 11 
      ? numbers.slice(0, 11)
      : numbers.slice(0, 14);
    
    const masked = formatCPFCNPJ(limitedNumbers);
    setMaskedValue(masked);
    setValue('document', limitedNumbers);
  };

  return (
    <input
      type="text"
      value={maskedValue}
      onChange={handleInputChange}
      placeholder="Enter CPF or CNPJ"
    />
  );
};

Português

Uma utilidade JavaScript simples para formatar números de CPF e CNPJ automaticamente com base no tamanho da entrada.

Instalação

npm install cpf-cnpj-formatter

Uso

const formatCPFCNPJ = require('cpf-cnpj-formatter');

// Formatar como CPF (11 dígitos ou menos)
console.log(formatCPFCNPJ('12345678901')); // Saída: 123.456.789-01
console.log(formatCPFCNPJ('123456789')); // Saída: 123.456.789

// Formatar como CNPJ (mais de 11 dígitos)
console.log(formatCPFCNPJ('12345678901234')); // Saída: 12.345.678/9012-34
console.log(formatCPFCNPJ('123456789012')); // Saída: 12.345.678/9012

Características

  • Detecta automaticamente se a entrada deve ser formatada como CPF ou CNPJ com base no tamanho
  • Remove todos os caracteres não numéricos da entrada
  • Limita CPF a 11 dígitos
  • Limita CNPJ a 14 dígitos
  • Formata CPF como XXX.XXX.XXX-XX
  • Formata CNPJ como XX.XXX.XXX/XXXX-XX

Exemplo com React

import React, { useState } from 'react';
import { useForm } from 'react-hook-form';
import formatCPFCNPJ from 'cpf-cnpj-formatter';

const Example = () => {
  const { register, handleSubmit, setValue } = useForm();
  const [maskedValue, setMaskedValue] = useState('');

  const handleInputChange = (e) => {
    const value = e.target.value;
    const numbers = value.replace(/\D/g, '');
    const limitedNumbers = numbers.length <= 11 
      ? numbers.slice(0, 11)
      : numbers.slice(0, 14);
    
    const masked = formatCPFCNPJ(limitedNumbers);
    setMaskedValue(masked);
    setValue('document', limitedNumbers);
  };

  return (
    <input
      type="text"
      value={maskedValue}
      onChange={handleInputChange}
      placeholder="Digite CPF ou CNPJ"
    />
  );
};

License | Licença

MIT