Documentação / 2 de 5
Como validar CNPJ alfanumérico em JavaScript
A biblioteca cpf também exporta cnpj, com suporte a corpos numéricos ou
alfanuméricos. O corpo tem 12 caracteres A-Z0-9; os dois verificadores finais
continuam numéricos. O mesmo validador atende às duas representações.
Valide CNPJ numérico e alfanumérico
npm install cpf
import { cnpj } from 'cpf'
cnpj.isValid('11.222.333/0001-81') // true
cnpj.isValid('12.ABC.345/01DE-35') // true
cnpj.isValid('12ABC34501DE35') // true
cnpj.isValid('12ABC34501DE36') // false
cnpj.isValid('12ABC34501DE3A') // false: letra no verificador
Você também pode importar apenas o namespace CNPJ com
import cnpj from 'cpf/cnpj'. Em CommonJS, use
const { cnpj } = require('cpf').
Normalize minúsculas antes de validar
As funções isValid e inspect esperam letras maiúsculas. Para aceitar a
digitação em minúsculas, normalize a entrada e trate erros de caracteres ou
tamanho.
function isValidCnpjInput(input: string): boolean {
try {
return cnpj.isValid(cnpj.normalize(input))
} catch {
return false
}
}
isValidCnpjInput('12.abc.345/01de-35') // true
Mantenha o documento como texto. Uma limpeza com replace(/\D/g, '') remove
letras que fazem parte do CNPJ; uma conversão numérica também perde zeros iniciais.
Inspecione e classifique a entrada
cnpj.inspect('12ABC34501DE36')
// { valid: false, normalized: '12ABC34501DE36',
// issue: 'INVALID_CHECK_DIGITS' }
cnpj.getKind('12ABC34501DE35') // 'alphanumeric'
cnpj.getKind('11222333000181') // 'numeric'
cnpj.getKind('12ABC') // null
getKind classifica a estrutura; não verifica o valor matemático dos dígitos.
Use isValid ou inspect quando precisar dessa confirmação.
Calcule os verificadores
cnpj.calculateCheckDigits('12ABC34501DE') // [3, 5]
O cálculo usa módulo 11 e o valor ASCII de cada caractere menos 48, conforme o manual de cálculo da Receita Federal. O programa CNPJ Alfanumérico reúne as orientações oficiais. A biblioteca verifica estrutura e dígitos; ela não consulta existência, titularidade ou situação cadastral.
Veja também máscaras de CPF e CNPJ e integração com React.