node-simple-validator
Version:
A simple validator of data
34 lines (33 loc) • 1.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/**
* @param {*} cpf a valid cpf
*
* @returns boolean
*
* @example
* const { isCpf } = require("node-simple-validator")
* isCpf("333.871.970-12") // true
* isCpf("33387197012") // true
* // Valid CPF generated by https://www.4devs.com.br/gerador_de_cpf
*/
exports.default = (function (cpf) {
if (!Boolean(cpf))
return false;
var cpfNumbers = cpf.replace(/\D/g, "");
if (cpfNumbers.length < 11)
return false;
var nineFirstNumbers = cpfNumbers.substr(0, 9).split("");
if (!Array.from(cpfNumbers).filter(function (e) { return e !== cpfNumbers[0]; }).length)
return false;
var mult = 10;
var sumFirstNumber = 11 - (nineFirstNumbers.map(function (number, index) { return number * (mult - index); }).reduce(function (acc, curr) { return acc + curr; }) % 11);
sumFirstNumber > 9 ? (sumFirstNumber = 0) : (sumFirstNumber = sumFirstNumber);
var cpfFirstNumber = ("" + nineFirstNumbers.join("") + sumFirstNumber).split("");
var sumSecondNumber = 11 - (cpfFirstNumber.map(function (number, index) { return number * (mult + 1 - index); }).reduce(function (acc, curr) { return (acc += curr); }) % 11);
sumSecondNumber > 9 ? (sumSecondNumber = 0) : (sumSecondNumber = sumSecondNumber);
var cpfComplete = "" + cpfFirstNumber.join("") + sumSecondNumber;
if (cpfComplete !== cpfNumbers)
return false;
return true;
});