infinity-forge
Version:
39 lines • 1.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateCNPJ = validateCNPJ;
function validateCNPJ(value) {
if (!value)
return false;
var cnpj = value.replace(/[^\d]+/g, '');
if (cnpj.length !== 14)
return false;
if (/^(\d)\1+$/.test(cnpj))
return false;
var length = cnpj.length - 2;
var numbers = cnpj.substring(0, length);
var digits = cnpj.substring(length);
var sum = 0;
var pos = length - 7;
for (var i = length; i >= 1; i--) {
sum += +numbers.charAt(length - i) * pos--;
if (pos < 2)
pos = 9;
}
var result = sum % 11 < 2 ? 0 : 11 - (sum % 11);
if (result !== +digits.charAt(0))
return false;
length = length + 1;
numbers = cnpj.substring(0, length);
sum = 0;
pos = length - 7;
for (var i = length; i >= 1; i--) {
sum += +numbers.charAt(length - i) * pos--;
if (pos < 2)
pos = 9;
}
result = sum % 11 < 2 ? 0 : 11 - (sum % 11);
if (result !== +digits.charAt(1))
return false;
return true;
}
//# sourceMappingURL=validate-cnpj.js.map