Skip to content

Instantly share code, notes, and snippets.

@leandrodaher
Forked from joaohcrangel/validation-cpf.ts
Created April 19, 2023 01:17
Show Gist options
  • Save leandrodaher/23568e0ca58b015628a7abd3b03b7e14 to your computer and use it in GitHub Desktop.
Save leandrodaher/23568e0ca58b015628a7abd3b03b7e14 to your computer and use it in GitHub Desktop.
Função para validar CPF em TypeScript
function isValidCPF(value: string) {
if (typeof value !== 'string') {
return false;
}
value = value.replace(/[^\d]+/g, '');
if (value.length !== 11 || !!value.match(/(\d)\1{10}/)) {
return false;
}
const values = value.split('').map(el => +el);
const rest = (count) => (values.slice(0, count-12).reduce( (soma, el, index) => (soma + el * (count-index)), 0 )*10) % 11 % 10;
return rest(10) === values[9] && rest(11) === values[10];
}
@leandrodaher
Copy link
Author

bestknighter commented on Dec 24, 2021

Ainda mais simplificado kkk

function isValidCPF(cpf) {
    if (typeof cpf !== 'string') return false
    cpf = cpf.replace(/[^\d]+/g, '')
    if (cpf.length !== 11 || !!cpf.match(/(\d)\1{10}/)) return false
    cpf = cpf.split('').map(el => +el)
    const rest = (count) => (cpf.slice(0, count-12)
        .reduce( (soma, el, index) => (soma + el * (count-index)), 0 )*10) % 11 % 10
    return rest(10) === cpf[9] && rest(11) === cpf[10]
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment