veryfiers
v1.0.1
Published
Valida se uma string é um código GTIN (Global Trade Item Number) válido. Suporta GTIN-8, GTIN-12, GTIN-13 e GTIN-14.
Readme
isValidGTIN
Descrição
Valida se uma string é um código GTIN (Global Trade Item Number) válido. Suporta GTIN-8, GTIN-12, GTIN-13 e GTIN-14.
Uso
import veryfiers from 'veryfiers';
const result = veryfiers.isValidGTIN('5901234123457');
console.log(result); // true ou falseComo Funciona
- Sanitização: Remove todos os caracteres não-dígitos da entrada
- Validação de Comprimento: Verifica se o GTIN tem 8 dígitos ou entre 12 e 14 dígitos
- Extração do Dígito de Verificação: Remove o último dígito (check digit)
- Cálculo do Checksum:
- Inverte a ordem dos dígitos restantes
- Multiplica cada dígito por 3 (posições pares) ou 1 (posições ímpares)
- Soma todos os resultados
- Validação do Dígito de Verificação: Compara o dígito de verificação fornecido com o calculado
Algoritmo Detalhado
Entrada: "5901234123457" (GTIN-13)
1. Sanitizar: "5901234123457"
2. Validar comprimento: 13 ✓
3. Extrair check digit: [5,9,0,1,2,3,4,1,2,3,4], checkDigit = 7
4. Reverter: [4,3,2,1,4,3,2,1,0,9,5]
5. Calcular sum: 4×3 + 3×1 + 2×3 + 1×1 + 4×3 + 3×1 + 2×3 + 1×1 + 0×3 + 9×1 + 5×3
6. Validar: checkDigit === (10 - (sum % 10)) % 10Formatos Suportados
- GTIN-8: 8 dígitos
- GTIN-12: 12 dígitos
- GTIN-13: 13 dígitos
- GTIN-14: 14 dígitos
Exemplo
veryfiers.isValidGTIN('5901234123457'); // true (GTIN-13 válido)
veryfiers.isValidGTIN('123456789012'); // true/false (depende do checksum)
veryfiers.isValidGTIN('96385074'); // true/false (GTIN-8)
veryfiers.isValidGTIN('invalid'); // false (caracteres não-dígitos)