Skip to content

Instantly share code, notes, and snippets.

@Hromenique
Created February 25, 2015 18:17
Show Gist options
  • Save Hromenique/0fe299cccc0c0ba18eb7 to your computer and use it in GitHub Desktop.
Save Hromenique/0fe299cccc0c0ba18eb7 to your computer and use it in GitHub Desktop.
/*
@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