Função simples para validar CPF escrita em Javascript

A função foi escrita utilizando apenas Javascript, ela irá validar CPF, respeitando as regras de validações definidas pelo ministério da fazenda.

função para validar cpf em javascript

Função para validar CPF

Adicione o código a seguir em seu projeto.

function _cpf(cpf) {
    cpf = cpf.replace(/[^\d]+/g, '');
    if (cpf == '') return false;
    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;
    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;
    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;
}

Sua utilização é bem simples, basta você passar o CPF como parâmetro e ela irá retornar true ou false conforme o resultado da validação.

A função já irá desconsiderar a máscara antes de validar o CPF,  retirando os pontos e traço.

Como validar CPF em um campo input text

Exemplo pratico de utilização.

Javascript

function validarCPF(el){
  if( !_cpf(el.value) ){

    alert("CPF inválido!" + el.value);

    // apaga o valor
    el.value = "";
  }
}

HTML

<input name="campo_de_teste" type="text" onblur="validarCPF(this)">

O evento “onblur” irá acionar a função “validarCPF” que utilizará da função “_cpf” para validar o valor digitado.

Você também pode customizar o código para utilizar apenas uma função.

Dúvidas? Faça um comentário logo abaixo ou envie uma mensagem clicando aqui.

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *