Skip to content

Instantly share code, notes, and snippets.

@Krymancer
Created April 10, 2021 07:30
Show Gist options
  • Save Krymancer/085e91193ccb31feab6d7c58c4715849 to your computer and use it in GitHub Desktop.
Save Krymancer/085e91193ccb31feab6d7c58c4715849 to your computer and use it in GitHub Desktop.
Validar CPF
function verifyCPF(cpf) {
cpf = cpf.replace(/[^\d]+/g,'');
let i,add,rev;
if(cpf === '') return false;
// Elimina CPFs invalidos conhecidos
if (cpf.length !== 11 ||
cpf === "00000000000" ||
cpf === "11111111111" ||
cpf === "22222222222" ||
cpf === "33333333333" ||
cpf === "44444444444" ||
cpf === "55555555555" ||
cpf === "66666666666" ||
cpf === "77777777777" ||
cpf === "88888888888" ||
cpf === "99999999999")
return false;
// Valida 1o digito
add = 0;
for (i=0; i < 9; i ++)
add += parseInt(cpf.charAt(i)) * (10 - i);
rev = 11 - (add % 11);
if (rev === 10 || rev === 11)
rev = 0;
if (rev !== parseInt(cpf.charAt(9)))
return false;
// Valida 2o digito
add = 0;
for (i = 0; i < 10; i ++)
add += parseInt(cpf.charAt(i)) * (11 - i);
rev = 11 - (add % 11);
if (rev === 10 || rev === 11)
rev = 0;
if (rev !== parseInt(cpf.charAt(10)))
return false;
return true;
}
module.exports = verifyCPF;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment