Created
February 25, 2015 18:17
-
-
Save Hromenique/0fe299cccc0c0ba18eb7 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
@Author Hromenique Cezniowscki Leite Batista | |
Valida se um CPF é valido | |
@param valor um cpf (String) contendo apenas os dígitos | |
@return true se o cpf é valido, false caso contrário | |
*/ | |
function validaCPF(cpf) { | |
if(cpf.length != 11){ | |
return false; | |
} | |
var c = cpf.substr(0,9); | |
var dv = cpf.substr(9,2); | |
var d1 = 0; | |
for (var i=0; i<9; i++) { | |
d1 += c.charAt(i)*(10-i); | |
} | |
if (d1 == 0) return false; | |
d1 = 11 - (d1 % 11); | |
if (d1 > 9) d1 = 0; | |
if (dv.charAt(0) != d1){ | |
return false; | |
} | |
d1 *= 2; | |
for (var i = 0; i < 9; i++) { | |
d1 += c.charAt(i)*(11-i); | |
} | |
d1 = 11 - (d1 % 11); | |
if (d1 > 9) d1 = 0; | |
if (dv.charAt(1) != d1){ | |
return false; | |
} | |
return true; | |
} | |
/* | |
@Author Hromenique Cezniowscki Leite Batista | |
Valida se um CNPJ é valido | |
@param valor um cnpj (String) contendo apenas os dígitos | |
@return true se o cnpj é valido, false caso contrário | |
*/ | |
function validaCNPJ(cnpj) { | |
if(cnpj.length != 14){ | |
return false | |
} | |
var a = new Array(); | |
var b = new Number; | |
var c = [6,5,4,3,2,9,8,7,6,5,4,3,2]; | |
for (i=0; i<12; i++){ | |
a[i] = cnpj.charAt(i); | |
b += a[i] * c[i+1]; | |
} | |
if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x } | |
b = 0; | |
for (y=0; y<13; y++) { | |
b += (a[y] * c[y]); | |
} | |
if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; } | |
if ((cnpj.charAt(12) != a[12]) || (cnpj.charAt(13) != a[13])){ | |
return false; | |
} | |
return true; | |
} | |
/* | |
@Author Hromenique Cezniowscki Leite Batista | |
Valida se um CPF (podendo está formatado) é valido | |
@param valor um cpf (String) contendo apenas os dígitos | |
@return true se o cpf é valido, false caso contrário | |
*/ | |
function validaCpfFormatado(cpf){ | |
var valor = cpf.replace(/[\.\-]+/g, ''); | |
var tamanho = valor.length; | |
if(tamanho == 11){ | |
return validaCPF(valor); | |
} | |
return false; | |
} | |
/* | |
@Author Hromenique Cezniowscki Leite Batista | |
Valida se um CNPJ (podendo está formatado) é valido | |
@param valor um cnpj (String) contendo apenas os dígitos | |
@return true se o cnpj é valido, false caso contrário | |
*/ | |
function validaCnpjFormatado(cnpj){ | |
var valor = cnpj.replace(/[\.\-\/]+/g, ''); | |
var tamanho = valor.length; | |
if(tamanho == 14){ | |
return validaCNPJ(valor); | |
} | |
return false; | |
} | |
/* | |
@Author Hromenique Cezniowscki Leite Batista | |
Valida se um CPF ou CNPJ é valido | |
@param valor um cpf ou cnpj (String) contendo apenas os dígitos | |
@return true se o valor é valido, false caso contrário | |
*/ | |
function validaCpfCnpj(cpf_cnpj) { | |
var tamanho = cpf_cnpj.length; | |
if (tamanho != 11 && tamanho != 14){ | |
return false; | |
} | |
if (tamanho == 11 ){ | |
return validaCPF(cpf_cnpj); | |
}else{ | |
return validaCNPJ(cpf_cnpj); | |
} | |
} | |
/* | |
@Author Hromenique Cezniowscki Leite Batista | |
Valida se um CPF ou CNPJ (podendo está formatado) é valido | |
@param valor um cpf ou cnpj (String) contendo apenas os dígitos | |
@return true se o valor é valido, false caso contrário | |
*/ | |
function validaCpfCnpjFormatado(cpf_cnpj) { | |
var valor = cpf_cnpj.replace(/[\.\-\/]+/g, ''); | |
return validaCpfCnpj(valor); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment