micdog / cnpj-alfa
Validação e formatação de CNPJ alfanumérico (SEFAZ/Serpro): 12 caracteres alfanuméricos + 2 DVs numéricos (módulo 11).
v1.0.0
2025-08-28 19:55 UTC
Requires
- php: >=8.1
Requires (Dev)
- phpunit/phpunit: ^11.0
README
Validação e formatação de CNPJ alfanumérico: 12 caracteres alfanuméricos + 2 dígitos verificadores numéricos calculados por módulo 11 (pesos 2..9 da direita para a esquerda, cíclico).
Mapeamento de caracteres: valor = ord(ch) - 48.
Instalação
composer require micdog/cnpj-alfa
Desenvolvimento:
git clone https://github.com/micdog22/CNPJ-Alfanumerico.git cd CNPJ-Alfanumerico composer install
Uso
use MicDog\CnpjAlfa\CnpjAlfa; // Validar $ok = CnpjAlfa::validate('12ABC34501DE35'); // true/false $fmt = CnpjAlfa::format('12abc34501de35'); // "12.ABC.345/01DE-35" // Calcular DV (quando você tem só os 12 primeiros) [$dv1, $dv2] = CnpjAlfa::computeDv('12ABC34501DE'); // [int, int]
CLI de demonstração
php bin/demo "12ABC34501DE35" "59.952.259/0001-85"
Saída esperada:
[OK] 12.ABC.345/01DE-35
[OK] 59.952.259/0001-85
Regras (resumo)
- Corpo: 12 caracteres
[A-Z0-9] - DV1: módulo 11 aplicando pesos
2..9da direita para a esquerda. - DV2: repete o cálculo com os 13 primeiros (12 + DV1).
- Dígitos finais devem ser numéricos.
Testes
composer test
Licença
MIT