Skip to content
/ cpf Public

πŸ‡§πŸ‡· Validate, generate and format CPF numbers

License

Notifications You must be signed in to change notification settings

fnando/cpf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9accc21 Β· Apr 3, 2022

History

21 Commits
Jul 21, 2020
Jul 21, 2020
Jul 21, 2020
Jul 21, 2020
Jul 21, 2020
Feb 19, 2020
Apr 4, 2018
Feb 19, 2020
Feb 19, 2020
Feb 19, 2020
Feb 19, 2020
Feb 19, 2020
Apr 4, 2018
Jul 21, 2020
Feb 19, 2020
Jul 21, 2020
Feb 19, 2020

Repository files navigation

CPF

Build Status NPM package version License: MIT Minified size Minified+Gzip size

This package does some CPF magic. It allows you to create, validate and format CPF documents.

HINT: Check out the CNPJ counter part available at https://github.com/fnando/cnpj.

Installation

This lib is available as a NPM package. To install it, use the following command:

npm install @fnando/cpf --save

If you're using Yarn (and you should):

yarn add @fnando/cpf

Usage

// Node.js-specific
const cpf = require("@fnando/cpf/commonjs");

// @import
import * as cpf from "@fnando/cpf"; // import the whole library
import { isValid as isValidCpf } from "@fnando/cpf"; // import just one function

// import via <script>; the lib will available as window.CPF
// <script src="cpf.js"></script>

cpf.isValid("532.820.857-96");
//=> true

cpf.isValid("53282085796");
//=> true

cpf.strip("532.820.857-96");
//=> 53282085796

cpf.format("53282085796");
//=> 532.820.857-96

cpf.generate(true); // generate formatted number
//=> 838.684.734-40

cpf.generate(); // generate unformatted number
//=> 72777632898

On the web, without transformation, just use web/cpf.min.js.

Strict Validation

By default, validations will strip any characters you provide. This means that the following is valid, because only numbers will be considered:

cpf.isValid("101#688!!!!!!542......36");
//=> true

cpf.strip("101#688!!!!!!542......36");
//=> 10168854236

If you want to strict validate strings, use the following signature:

cpf.isValid(number, strict);

The same example would now return false:

cpf.isValid("101#688!!!!!!542......36", true);
//=> false