cpf = class {
static gera_random(n) {
var ranNum = Math.round(Math.random()*n);
return ranNum;
}
static mod(dividendo,divisor) {
return Math.round(dividendo - (Math.floor(dividendo/divisor)*divisor));
}
static novo_invalido(separadores) {
var n = 9;
var n1 = this.gera_random(n);
var n2 = this.gera_random(n);
var n3 = this.gera_random(n);
var n4 = this.gera_random(n);
var n5 = this.gera_random(n);
var n6 = this.gera_random(n);
var n7 = this.gera_random(n);
var n8 = this.gera_random(n);
var n9 = this.gera_random(n);
var d1 = this.gera_random(n);
var d2 = this.gera_random(n);
if (separadores)
return ''+n1+n2+n3+'.'+n4+n5+n6+'.'+n7+n8+n9+'-'+d1+d2;
else
return ''+n1+n2+n3+n4+n5+n6+n7+n8+n9+d1+d2;
}
static novo(separadores) {
var n = 9;
var n1 = this.gera_random(n);
var n2 = this.gera_random(n);
var n3 = this.gera_random(n);
var n4 = this.gera_random(n);
var n5 = this.gera_random(n);
var n6 = this.gera_random(n);
var n7 = this.gera_random(n);
var n8 = this.gera_random(n);
var n9 = this.gera_random(n);
var d1 = n9*2+n8*3+n7*4+n6*5+n5*6+n4*7+n3*8+n2*9+n1*10;
d1 = 11 - (this.mod(d1,11));
if (d1>=10) d1 = 0;
var d2 = d1*2+n9*3+n8*4+n7*5+n6*6+n5*7+n4*8+n3*9+n2*10+n1*11;
d2 = 11 - (this.mod(d2,11));
if (d2>=10) d2 = 0;
if (separadores)
return ''+n1+n2+n3+'.'+n4+n5+n6+'.'+n7+n8+n9+'-'+d1+d2;
else
return ''+n1+n2+n3+n4+n5+n6+n7+n8+n9+d1+d2;
}
static validar(cpf) {
if (cpf===null)
return false;
cpf = remove_non_digits(cpf);
if (cpf.length != 11 || ["00000000000","11111111111","22222222222","33333333333",
"44444444444","55555555555","66666666666","77777777777",
"88888888888","99999999999"].includes(cpf))
return false;
let add = 0;
for (let i = 0; i < 9; i++)
add += parseInt(cpf.charAt(i)) * (10 - i);
let rev = 11 - (add % 11);
if (rev == 10 || rev == 11)
rev = 0;
if (rev != parseInt(cpf.charAt(9)))
return false;
add = 0;
for (let 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;
alert('O CPF INFORMADO É VÁLIDO.');
return true;
}
}