
function validateCPF(strCPF) {
    var Soma;
    var Resto;
    Soma = 0;

    strCPF = String(strCPF).replace(/[^\d]/g, '');

    if (strCPF == "00000000000"){ return false; }
    if (strCPF == "11111111111"){ return false; }
    if (strCPF == "22222222222"){ return false; }
    if (strCPF == "33333333333"){ return false; }
    if (strCPF == "44444444444"){ return false; }
    if (strCPF == "55555555555"){ return false; }
    if (strCPF == "66666666666"){ return false; }
    if (strCPF == "77777777777"){ return false; }
    if (strCPF == "88888888888"){ return false; }
    if (strCPF == "99999999999"){ return false; }

    for (i = 1; i <= 9; i++) {
        Soma = Soma + parseInt(strCPF.substring(i - 1, i)) * (11 - i);
    }

    Resto = (Soma * 10) % 11;

    if ((Resto == 10) || (Resto == 11)) { Resto = 0; }

    if (Resto != parseInt(strCPF.substring(9, 10))) { return false; }

    Soma = 0;
    for (i = 1; i <= 10; i++) {
        Soma = Soma + parseInt(strCPF.substring(i - 1, i)) * (12 - i);
    }

    Resto = (Soma * 10) % 11;

    if ((Resto == 10) || (Resto == 11)) { Resto = 0; }

    if (Resto != parseInt(strCPF.substring(10, 11))) { return false; }

    return true;
}

function validateCNPJ(cnpj) {

    var b = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
    var c = String(cnpj).replace(/[^\d]/g, '');

    if (c.length !== 14) {
        return false
    }

    if (/0{14}/.test(c)) {
        return false
    }

    for (var i = 0, n = 0; i < 12; n += c[i] * b[++i])
        ;

    if (c[12] != (((n %= 11) < 2) ? 0 : 11 - n)) {
        return false
    }

    for (var i = 0, n = 0; i <= 12; n += c[i] * b[i++])
        ;

    if (c[13] != (((n %= 11) < 2) ? 0 : 11 - n)) {
        return false
    }

    return true
}

