Passaporte

Números de passaporte brasileiro (2 letras e 6 dígitos).

  • Matriz de paridade

Validar

Valida um número de passaporte brasileiro: 2 letras seguidas de 6 dígitos, depois de remover os caracteres não alfanuméricos.

  • Não há dígito verificador, então um número bem formado não é necessariamente um passaporte real.
  • Um valor numérico nunca é válido (ele não pode começar com as duas letras).
  • A única fonte oficial do formato é a FAQ da Polícia Federal ("duas letras ... e por seis dígitos subsequentes", exemplo CS265436). Nem o Decreto 5.978/2006 nem a IN 173-DG/PF/2020 definem o número, e a FAQ não proíbe nenhuma letra, então nenhuma é rejeitada.

Decisão pendente

A referência (JS) não diferencia maiúsculas de minúsculas e ignora símbolos (ab123456 e AB-123.456 são válidos). Erlang e Python aceitam apenas a forma estrita em maiúsculas. Veja a decisão em aberto em docs/findings.md (em inglês).

ParâmetroTipoObrigatório
passportstring | numbersim
retornaboolean

Valida um número de passaporte brasileiro: 2 letras seguidas de 6 dígitos.

  • Não há dígito verificador, então um número bem formado não é necessariamente um passaporte real.
  • As 2 letras (a "série") e os 6 dígitos vêm do FAQ da Polícia Federal; nenhuma norma define o número (nem o Decreto nº 5.978/2006 nem a IN nº 173-DG/PF/2020, alterada até a IN nº 283/2024), e o FAQ não lista letra proibida.
import { isValidPassport } from '@brazilian-utils/brazilian-utils';

isValidPassport('AB123456'); // true
isValidPassport('ab123456'); // true (não diferencia maiúsculas de minúsculas)
isValidPassport('AB-123.456'); // true (símbolos são ignorados)
isValidPassport('12345678'); // false

Fonte: FAQ da Polícia Federal.

Código: brazilian-utils/javascript
Teste com JavaScript isValidPassport
As entradas começam com o primeiro caso compartilhado. Mude uma para ver o novo resultado.

Roda @brazilian-utils/brazilian-utils 2.5.0 no seu navegador.

Casos de teste compartilhados (12) e o resultado em cada biblioteca passport.isValid

Formatar

Formata um número de passaporte: em maiúsculas, sem símbolos, com no máximo 8 caracteres (a mesma operação de passport.parse).

  • É um apelido de passport.parse: não confere o número, então um valor incompleto (AB12) é formatado como está.
  • Um valor que não é string (por exemplo, um número) retorna uma string vazia: um número nunca é um número de passaporte, pois a série são duas letras.

Decisão pendente

A referência (JS) converte para maiúsculas a entrada em minúsculas e com máscara. Erlang e Python aceitam apenas a forma estrita em maiúsculas. Veja a decisão em aberto em docs/findings.md (em inglês).

ParâmetroTipoObrigatório
passportstringsim
retornastring

Formata um número de passaporte brasileiro: maiúsculas, sem símbolos, limitado a 8 caracteres. É a mesma operação de parsePassport, da qual é um alias.

import { formatPassport } from '@brazilian-utils/brazilian-utils';

formatPassport('ab123456'); // 'AB123456'
formatPassport('AB-123.456'); // 'AB123456'
Código: brazilian-utils/javascript
Teste com JavaScript formatPassport
As entradas começam com o primeiro caso compartilhado. Mude uma para ver o novo resultado.

Roda @brazilian-utils/brazilian-utils 2.5.0 no seu navegador.

Casos de teste compartilhados (19) e o resultado em cada biblioteca passport.format

Interpretar

Remove todo caractere não alfanumérico de um número de passaporte, converte-o para maiúsculas e limita-o a 8 caracteres.

  • Um valor que não é string (por exemplo, um número) retorna uma string vazia.
ParâmetroTipoObrigatório
passportstringsim
retornastring

Remove todos os caracteres não alfanuméricos de um número de passaporte, converte para maiúsculas e limita o resultado a 8 caracteres.

import { parsePassport } from '@brazilian-utils/brazilian-utils';

parsePassport('AB-123.456'); // 'AB123456'
parsePassport(' AB 123 456 '); // 'AB123456'
Código: brazilian-utils/javascript
Teste com JavaScript parsePassport
As entradas começam com o primeiro caso compartilhado. Mude uma para ver o novo resultado.

Roda @brazilian-utils/brazilian-utils 2.5.0 no seu navegador.

Casos de teste compartilhados (8) e o resultado em cada biblioteca passport.parse

Gerar

Gera um número de passaporte aleatório e válido: 2 letras maiúsculas seguidas de 6 dígitos.

ParâmetroTipoObrigatório
retornastring

Gera um número de passaporte brasileiro válido aleatório.

import { generatePassport } from '@brazilian-utils/brazilian-utils';

generatePassport(); // 'RY393097'
Código: brazilian-utils/javascript
Teste com JavaScript generatePassport
As entradas começam com o primeiro caso compartilhado. Mude uma para ver o novo resultado.

Roda @brazilian-utils/brazilian-utils 2.5.0 no seu navegador.

Casos de teste compartilhados (1) e o resultado em cada biblioteca passport.generate

Fontes oficiais

Atualizado em

Nesta página