/* Função que gera um número de CPF válido */ function gerarCPF() { var iniciais = "";//contém os 9 primeiros números do cpf var numero;//número gerado randomicamente var primDig, segDig;//recebem o primeiro e o segundo digitos calculados var soma = 0, peso = 10; //utilizados nos calculos dos digitos verificadores var num; //receberá o valor contido em iniciais //gera randomicamente os 9 primeiros números do cpf for (i = 0; i < 9; i++) { numero = Math.round(Math.random() * 10); if(numero > 9)//pois o número deve ser de 0 a 9 numero = 9; iniciais += numero.toString(); } //armazena em num o valor de iniciais num = iniciais; for (i = 0; i < iniciais.length; i++) soma += StrToInt(num.substring(i, i + 1)) * peso--; if (soma % 11 == 0 | soma % 11 == 1) primDig = 0; else primDig = 11 - (soma % 11); soma = 0; peso = 11; for (i = 0; i < num.length; i++) soma += StrToInt(num.substring(i, i + 1)) * peso--; soma += primDig * 2; if (soma % 11 == 0 | soma % 11 == 1) segDig = 0; else segDig = 11 - (soma % 11); //retorna o cpf gerado return iniciais+primDig+segDig; } /* Função que gera um número de CNPJ válido */ function gerarCNPJ(){ var iniciais = "";//contém os 8 primeiros números do cnpj var numero;//número gerado randomicamente var primDig, segDig;//recebem o primeiro e o segundo digitos calculados var num; //receberá o valor contido em iniciais var intRestoDivisao; //recebe o resto de uma divisão //gera randomicamente os 8 primeiros números do cnpj for (i = 0; i < 8; i++) { numero = Math.round(Math.random() * 10); if(numero > 9)//pois o número deve ser de 0 a 9 numero = 9; iniciais += numero.toString(); } iniciais +="0001"; //armazena em num o valor de iniciais num = iniciais; //5 4 3 2 9 8 7 6 5 4 3 // calculando o primeiro dígito: soma = 0; soma += 5 * StrToInt((num.substring(0, 1))); soma += 4 * StrToInt((num.substring(1, 2))); soma += 3 * StrToInt((num.substring(2, 3))); soma += 2 * StrToInt((num.substring(3, 4))); soma += 9 * StrToInt((num.substring(4, 5))); soma += 8 * StrToInt((num.substring(5, 6))); soma += 7 * StrToInt((num.substring(6, 7))); soma += 6 * StrToInt((num.substring(7, 8))); soma += 5 * StrToInt((num.substring(8, 9))); soma += 4 * StrToInt((num.substring(9, 10))); soma += 3 * StrToInt((num.substring(10, 11))); soma += 2 * StrToInt((num.substring(11, 12))); 2 intRestoDivisao = soma % 11; //Caso o resto da divisão seja menor que 2, //o nosso primeiro dígito verificador se torna 0 (zero), //caso contrário subtrai-se o valor obtido de 11 if(intRestoDivisao<2){ primDig = 0; }else{ primDig = 11-intRestoDivisao; } //6 5 4 3 2 9 8 7 6 5 // calculando o segundo dígito: soma = 0; soma += 6 * StrToInt((num.substring(0, 1))); soma += 5 * StrToInt((num.substring(1, 2))); soma += 4 * StrToInt((num.substring(2, 3))); soma += 3 * StrToInt((num.substring(3, 4))); soma += 2 * StrToInt((num.substring(4, 5))); soma += 9 * StrToInt((num.substring(5, 6))); soma += 8 * StrToInt((num.substring(6, 7))); soma += 7 * StrToInt((num.substring(7, 8))); 4 3 2 soma += 6 * StrToInt((num.substring(8, 9))); soma += 5 * StrToInt((num.substring(9, 10))); soma += 4 * StrToInt((num.substring(10, 11))); soma += 3 * StrToInt((num.substring(11, 12))); soma += 2 * primDig; intRestoDivisao = soma % 11; //Caso o resto da divisão seja menor que 2, //o nosso primeiro dígito verificador se torna 0 (zero), //caso contrário subtrai-se o valor obtido de 11 if(intRestoDivisao<2){ segDig = 0; }else{ segDig = 11-intRestoDivisao; } //retorna o cnpj gerado return iniciais+primDig+segDig; }