cpf-authenticator
Version:
> Pacote desenvolvido em JavaScript que realiza validação do CPF.
53 lines (48 loc) • 1.4 kB
JavaScript
function cpfAuthenticator(cpf, repeat){
let cpfNumbers = [];
if(cpf.length === 11){
cpfNumbers = cpf.split('');
} else if(cpf.length === 14) {
const numbersWdigits = cpf.split('');
numbersWdigits.map(number => {
if(number !== '-' && number !== '.'){
cpfNumbers.push(number);
}
});
} else {
return {
"error": "Tamanho do CPF não está correto, tente retirar os pontos e o hífen e verifique se há 11 números"
}
}
if(repeat === false){
let i = 0;
cpfNumbers.map(number => {
number === cpfNumbers[0] ? i++ : null;
});
if(i === 11){
return false;
}
}
const firstNumber = numberAuthenticator(cpfNumbers, 10, 9);
const secondNumber = numberAuthenticator(cpfNumbers, 11, 10);
if(firstNumber && secondNumber) {
return true;
} else {
return false;
}
}
function numberAuthenticator(cpf, i, n){
let total = 0;
cpf.map((number, k) => {
if(k < n){
total = total + (parseInt(number) * (i - k));
}
});
const number = (total * 10) % 11;
if(number === parseInt(cpf[n])){
return true;
} else {
return false;
}
}
module.exports = { cpfAuthenticator }