Regex for Hex Color
A simple validator for 3- or 6-digit hex colors, useful in design tooling and theme settings.
The expression
/^#?(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/How to read it
Anchor: the match must start at the beginning of the string.
Anchor: the match must run to the end of the string.
A brace quantifier fixes how many times the previous token repeats.
(?: … ) groups without capturing, so it costs nothing to read back.
Validate your own text, line by line
no inputThis expression is anchored, so it asks whether a whole string is valid. Each line above is tested on its own — it will not find a match inside a longer sentence.
Examples, checked in your browser
4/4 verified#0fa
Matches.
3366FF
Matches.
#abcd
No match — this is the kind of input the pattern rejects.
rgb(0,0,0)
No match — this is the kind of input the pattern rejects.
Use it in code
3 languagesconst regex = /^#?(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/g;
regex.test(input);import re
pattern = re.compile(r"^#?(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$")
bool(pattern.search(input))re := regexp.MustCompile("^#?(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$")
matched := re.MatchString(input)Other validation patterns
6Valid Email Address
/^[^\s@]+@[^\s@]+\.[^\s@]+$/i
URL Slug
/^[a-z0-9]+(?:-[a-z0-9]+)*$/
Strong Password
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^A-Za-z\d]).{12,}$/
UUID v4
/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i
IPv4 Address
/^(?:25[0-5]|2[0-4]\d|1?\d?\d)(?:\.(?:25[0-5]|2[0-4]\d|1?\d?\d)){3}$/
Semantic Version
/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/