Regex Patterns

Hex Color Code

Match hex color codes in 3-digit or 6-digit format with optional # prefix.

What Is This?

This regex pattern matches hexadecimal color codes in both 3-digit shorthand (#fff) and 6-digit full (#ffffff) formats. The # prefix is optional. Hex color codes represent RGB values using hexadecimal notation: RRGGBB where each pair ranges from 00 to FF.

How to Use

1

The Pattern

Use this pattern to validate color input in design tools, CSS editors, and configuration files. The pattern accepts both formats: #fff (shorthand where each digit is doubled to #ffffff) and #ffffff (full specification). The case-insensitive flag i allows both uppercase and lowercase hex digits.

/^#?([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/i

Examples

Example

Standard hex colors

Matches:
#ff0000
#00ff00
#0000ff
#FFFFFF
ff0000

Does not match:
#ffff
#gggggg
#12345
red
Example

Short and long formats

Matches:
#fff
#abc
#123456
#AABBCC
f0f0f0

Does not match:
#abcd
#1234567
rgb(255,0,0)
hsl(0,100%,50%)

Frequently Asked Questions

Should I include the # prefix in storage?

Consistency matters. If storing with #, always include it. If storing without, always exclude it. Most CSS color values use the # prefix, but some systems store the raw hex value for flexibility.

Does this pattern match 8-digit hex with alpha?

No. This pattern only matches 3-digit and 6-digit hex colors. For 8-digit hex (RRGGBBAA) with alpha channel, use: ^#?([0-9A-Fa-f]{4}|[0-9A-Fa-f]{8})$.