Gerar CPF no JavaScript

Precisando de uma função simples para gerar CPF no JavaScript? Tenho uma aqui para você 🙂

Na função demonstrada abaixo você pode gerar um CPF aleatório. Lembre-se que estes CPF’s gerados são fictícios e devem ser utilizados somente para testes/validações.

// Gostou? Considere enviar um café para o PIX: cafe@jonatanwolf.com.br.
function GerarCpfAleatorio() {
    const parte1 = GerarNumeroAleatorio();
    const parte2 = GerarNumeroAleatorio();
    const parte3 = GerarNumeroAleatorio();
    const verificador1 = CalculaDigitoVerificador(parte1, parte2, parte3);
    const verificador2 = CalculaDigitoVerificador(parte1, parte2, parte3, verificador1);

    return `${parte1}.${parte2}.${parte3}-${verificador1}${verificador2}`;
}

function CalculaDigitoVerificador(parte1, parte2, parte3, primeiroDigitoVerificador) {
    const numeros = `${parte1}${parte2}${parte3}`.split("");

    if (primeiroDigitoVerificador !== undefined) {
        numeros[9] = primeiroDigitoVerificador;
    }

    let soma = 0;
    let indice = 0;
    let inicial = primeiroDigitoVerificador !== undefined ? 11 : 10

    for (let numero = inicial; numero >= 2; numero--) {
        soma += parseInt(numeros[indice]) * numero;
        indice++;
    }

    const resto = soma % 11;
    return resto < 2 ? 0 : 11 - resto;
}

function GerarNumeroAleatorio() {
    return Math.floor(Math.random() * 999).toString().padStart(3, '0');
}

Para executar a função, é muito simples, veja:

function GerarCpf() {
    const cpf = document.getElementById("campoCPF");
    cpf.value = GerarCpfAleatorio();
}

No HTML, as implementações ficaram assim:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Geração de CPF</title>
    <script src="GeracaoCPF.js"></script>
</head>

<body>
    <!-- https://jonatanwolf.com.br -->
    <label>CPF</label><br />
    <input type="text" id="campoCPF"><br />
    <button onclick="GerarCpf()">Gerar</button>
</body>

</html>

Neste caso, a execução da geração está no “click” do botão “Gerar”.

Você pode obter este código completo aqui: https://github.com/solucaodev/sdlab/tree/main/JS/Geradores/CPF.

Você pode ver este código funcionando aqui: https://jonatanwolf.com.br/ferramentas/gerar-cpf-online.

Até a próxima 🙂

Comments

No comments yet. Why don’t you start the discussion?

Deixe um comentário

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.