UNPKG

@sjsilva-libs/validation

Version:

Validação de CNPJ e CPF

40 lines (30 loc) 1.06 kB
export function isCNPJ(cnpj: string | null | undefined): boolean { if (!(typeof cnpj === 'string' && cnpj)) return false cnpj = cnpj.replace(/[\\.\\/-]/g, '') if (cnpj.length !== 14 || /^(\d)\1{13}$/.test(cnpj)) return false let length = cnpj.length - 2, numbers = cnpj.substring(0, length), digits = cnpj.substring(length), sum = 0, pos = length - 7 for (let i = length; i >= 1; i--) { // @ts-ignore sum += numbers[length - i] * pos-- if (pos < 2) pos = 9 } console.log('Soma:', sum, 'Resto:', sum % 11) // <-- ADICIONE ESTA LINHA let result = sum % 11 < 2 ? 0 : 11 - (sum % 11) if (result !== parseInt(digits[0])) return false length++ numbers = cnpj.substring(0, length) sum = 0 pos = length - 7 for (let i = length; i >= 1; i--) { // @ts-ignore sum += numbers[length - i] * pos-- if (pos < 2) pos = 9 } result = sum % 11 < 2 ? 0 : 11 - (sum % 11) console.log('Resultado esperado do segundo dígito:', result) // <-- ADICIONE ESTA LINHA return result === parseInt(digits[1]) }