Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/fnando/cpf

🇧🇷 Validate, generate and format CPF numbers
https://github.com/fnando/cpf

cpf javascript npm

Last synced: about 15 hours ago
JSON representation

🇧🇷 Validate, generate and format CPF numbers

Awesome Lists containing this project

README

        

# CPF

[![Build Status](https://travis-ci.org/fnando/cpf.svg?branch=master)](https://travis-ci.org/fnando/cpf)
[![NPM package version](https://img.shields.io/npm/v/@fnando/cpf.svg)](https://www.npmjs.com/package/@fnando/cpf)
![License: MIT](https://img.shields.io/npm/l/@fnando/cpf.svg)
![Minified size](http://img.badgesize.io/fnando/cpf/master/web/cpf.min.js.svg?label=cpf+min+size)
![Minified+Gzip size](http://img.badgesize.io/fnando/cpf/master/web/cpf.min.js.svg?compression=gzip&label=cpf+min%2Bgzip+size)

This package does some
[CPF](http://en.wikipedia.org/wiki/Cadastro_de_Pessoas_F%C3%ADsicas) magic. It
allows you to create, validate and format CPF documents.

**HINT:** Check out the CNPJ counter part available at
.

## 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

```js
// 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 ; the lib will available as window.CPF
// <script src="cpf.js">

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:

```js
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:

```js
cpf.isValid(number, strict);
```

The same example would now return `false`:

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