Skip to content

Instantly share code, notes, and snippets.

@maykondeykon
Last active September 18, 2015 15:34
Show Gist options
  • Save maykondeykon/4915b6c8443c436028fe to your computer and use it in GitHub Desktop.
Save maykondeykon/4915b6c8443c436028fe to your computer and use it in GitHub Desktop.
Função para validação de CNPJ usando o plugin JQuery Bootstrap Validator.
/**
* Função para validar CNPJ usando bootstrapvalidator
* Baseado na função para validação de CPF encontrada em:
* https://github.com/nghuuphuoc/bootstrapvalidator/issues/187
* usando a implementação da validação para CNPJ encontrada em:
* http://www.fernandowobeto.com/blog/plugin-jquery-validacao-cnpj/
*
*/
(function(e) {
e.fn.bootstrapValidator.validators.cnpjVal = {
html5Attributes: {
message: "message"
},
validate: function(e, t, n) {
var r = t.val();
if (r == "") {
return true
}
r = r.replace(".", "");
r = r.replace(".", "");
cnpj = r.replace("-", "");
cnpj = r.replace("/", "");
while (cnpj.length < 14)
cnpj = "0" + cnpj;
var z = /^0+$|^1+$|^2+$|^3+$|^4+$|^5+$|^6+$|^7+$|^8+$|^9+$/;
var s = [6,5,4,3,2,9,8,7,6,5,4,3,2];
var o = [];
var u = new Number;
for (i = 0; i < 12; i++) {
o[i] = cnpj.charAt(i);
u += o[i] * s[i+1];
}
if ((x = u % 11) < 2) {
o[12] = 0
} else {
o[12] = 11 - x
}
u = 0;
for (y = 0; y < 13; y++)
u += o[y] * s[y];
if ((x = u % 11) < 2) {
o[13] = 0
} else {
o[13] = 11 - x
}
if (cnpj.charAt(12) != o[12] || cnpj.charAt(13) != o[13] || cnpj.match(z))
return false;
return true
}
}
})(window.jQuery);
@maykondeykon
Copy link
Author

Uso: adicionar ao arquivo de validação ".js", usar "cnpjVal" como validador nas validações.
Ex:
...
fields: {
cnpj: {
validators: {
cnpjVal: {
message: 'CNPJ inválido.'
}
}
}
}
...

@markinfurkin
Copy link

há erro nas funções de replace

r = r.replace(".", "");
r = r.replace(".", "");
cnpj = r.replace("-", "");
cnpj = r.replace("/", "");            

aconselho usar regex:

 cnpj = r.replace(/[^\d]+/g,'');

grato pela função de validação ;)

@solenark
Copy link

Boa tarde amigo!
Posso colar essa função no meu jquery.validate.js ? Sou bem leigo trabalhando com JQuery, e gostaria de saber se é possível vc me passar um exemplo de uso mais específico.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment