DevKits

Validation

Match a US ZIP code

Match 5-digit US ZIP codes with optional +4 extension.

Pattern

Regular expression

\b[0-9]{5}(?:-[0-9]{4})?\b

How it works

Matches exactly 5 digits, optionally followed by `-` and 4 more digits. Word boundaries prevent partial matches inside longer numbers.

Matches

  • 94103
  • 10001-1234
  • 20500

Non-matches

  • 1234 (too short)
  • 123456 (too long)
  • 94103-1

Language snippets

JavaScript

const re = /\b[0-9]{5}(?:-[0-9]{4})?\b/g;

Python

re.findall(r"\b[0-9]{5}(?:-[0-9]{4})?\b", text)

Go

re := regexp.MustCompile(`\b[0-9]{5}(?:-[0-9]{4})?\b`)

Java

Pattern.compile("\\b[0-9]{5}(?:-[0-9]{4})?\\b")

Related patterns

Try any pattern live in the Regex Tester