Regex para ZIP code dos EUA

Use /^\d{5}(?:-\d{4})?$/ para verificar se uma string inteira é um ZIP code válido dos EUA. Todos os exemplos abaixo foram testados contra o padrão, e você pode abri-los no Regex Tester com as amostras já carregadas.

Atualizado em

/^\d{5}(?:-\d{4})?$/
Abrir no Regex Tester
EntradaResultado
90210✓ Corresponde
10001-1234✓ Corresponde
02134✓ Corresponde
9021✗ Não corresponde
902101✗ Não corresponde
90210-12✗ Não corresponde
90210 1234✗ Não corresponde

Como o padrão funciona

ParteSignificado
^\d{5}Cinco dígitos
(?:-\d{4})?Extensão ZIP+4 opcional: um hífen e quatro dígitos
$Fim da string

Exemplos de código

JavaScript

const re = /^\d{5}(?:-\d{4})?$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'\d{5}(?:-\d{4})?', value))

PHP

preg_match('/^\d{5}(?:-\d{4})?$/', $value) === 1;

Observações e limitações

Mantenha os ZIP codes como strings, não como números — os códigos do New England começam com 0 e esse zero se perderia.

Perguntas frequentes

Qual é a regex para ZIP code dos EUA?
/^\d{5}(?:-\d{4})?$/ — ela confere a string inteira. Veja a tabela acima para entender o que cada parte faz.
Quais exemplos batem?
Entre os exemplos testados, estes batem: 90210, 10001-1234, 02134. Os outros não batem.
Como testo essa regex?
Clique em “Abrir no Regex Tester” — o padrão, as flags e o texto de exemplo carregam automaticamente, e as correspondências são destacadas enquanto você edita.