UNPKG

infinity-forge

Version:
39 lines 1.16 kB
"use strict"; 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