UNPKG

node-simple-validator

Version:
34 lines (33 loc) 1.48 kB
"use strict"; 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; });