br-validations
Version:
A library of validations applicable to several Brazilian data like I.E., CNPJ, CPF and others
32 lines (27 loc) • 588 B
JavaScript
var CNPJ = {};
CNPJ.validate = function(c) {
var b = [6,5,4,3,2,9,8,7,6,5,4,3,2];
c = c.replace(/[^\d]/g,'');
var r = /^(0{14}|1{14}|2{14}|3{14}|4{14}|5{14}|6{14}|7{14}|8{14}|9{14})$/;
if (!c || c.length !== 14 || r.test(c)) {
return false;
}
c = c.split('');
for (var i = 0, n = 0; i < 12; i++) {
n += c[i] * b[i+1];
}
n = 11 - n%11;
n = n >= 10 ? 0 : n;
if (parseInt(c[12]) !== n) {
return false;
}
for (i = 0, n = 0; i <= 12; i++) {
n += c[i] * b[i];
}
n = 11 - n%11;
n = n >= 10 ? 0 : n;
if (parseInt(c[13]) !== n) {
return false;
}
return true;
};