Validar CNPJ no JavaScript

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

Na função demonstrada abaixo você pode verificar se um determinado CNPJ é ou não válido. Você receberá um valor booleano ao executar a função, veja:

// Gostou? Considere enviar um café para o PIX: cafe@1bit.cafe.
function CnpjValido(cnpj) {
    cnpj = cnpj.replace(/[^\d]+/g, '');

    if (cnpj.length != 14)
        return false;

    var tamanhoTotal = cnpj.length - 2
    var cnpjSemDigitos = cnpj.substring(0, tamanhoTotal);
    var digitosVerificadores = cnpj.substring(tamanhoTotal);
    var soma = 0;
    var pos = tamanhoTotal - 7;
    for (i = tamanhoTotal; i >= 1; i--) {
        soma += cnpjSemDigitos.charAt(tamanhoTotal - i) * pos--;
        if (pos < 2)
            pos = 9;
    }
    resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
    if (resultado != digitosVerificadores.charAt(0))
        return false;

    tamanhoTotal = tamanhoTotal + 1;
    cnpjSemDigitos = cnpj.substring(0, tamanhoTotal);
    soma = 0;
    pos = tamanhoTotal - 7;
    for (i = tamanhoTotal; i >= 1; i--) {
        soma += cnpjSemDigitos.charAt(tamanhoTotal - i) * pos--;
        if (pos < 2)
            pos = 9;
    }

    resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
    if (resultado != digitosVerificadores.charAt(1))
        return false;

    return true;
}

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

function ValidarCnpj() {
    var cnpj = document.getElementById("campoCNPJ").value;
    if (CnpjValido(cnpj)) {
        alert("O CNPJ [" + cnpj + "] é válido!");
    } else {
        alert("O CNPJ [" + cnpj + "] não é válido!");
    }
}

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>Validaçao de CNPJ</title>
    <script src="ValidacaoCNPJ.js"></script>
</head>

<body>
    <!-- https://1bit.cafe -->
    <label>CNPJ</label><br />
    <input type="text" id="campoCNPJ"><br />
    <button onclick="ValidarCnpj()">Validar</button>
</body>

</html>

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

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

Você pode ver este código em funcionamento aqui: https://1bit.cafe/ferramentas/validar-cnpj-online.

Até a próxima 🙂

Share