For example:
AA33FF
= valid hex color
Z34FF9
= invalid hex color (has Z in it)
AA33FF11
= invalid hex color (h
/^#[0-9A-F]{6}$/i.test('#AABBCC')
To elaborate:
^ ->
match beginning
# ->
a hash
[0-9A-F] ->
any integer from 0 to 9 and any letter from A to F
{6} ->
the previous group appears exactly 6 times
$ ->
match end
i ->
ignore case
If you need support for 3-character HEX codes, use the following:
/^#([0-9A-F]{3}){1,2}$/i.test('#ABC')
The only difference here is that
[0-9A-F]{6}
is replaced with
([0-9A-F]{3}){1,2}
This means that instead of matching exactly 6 characters, it will match exactly 3 characters, but 1 or 2 times. Allowing ABC
and AABBCC
, but not ABCD