I'm looking for a regular expression to validate hex colors in asp.net C#. and also looking code for validate in server side
For instance: #CCCCCC
I'm looking for a regular expression to validate hex colors in asp.net C#. and also looking code for validate in server side
For instance: #CCCCCC
^#(?:[0-9a-fA-F]{3}){1,2}$
Dissection:
^ anchor for start of string
# the literal #
( start of group
?: indicate a non-capturing group that doesn't generate backreferences
[0-9a-fA-F] hexadecimal digit
{3} three times
) end of group
{1,2} repeat either once or twice
$ anchor for end of string
This will match an arbitrary hexadecimal color value that can be used in CSS, such as #91bf4a
or #f13
.
Minor disagreement with the other solution. I'd say
^#([0-9a-fA-F]{2}){3}|([0-9a-fA-F]){3}$
The reason is that this (correctly) captures the individual RGB components. The other expression broke #112233 in three parts, '#' 112 233. The syntax is actually '#' (RR GG BB) | (R G B)
The slight disadvantage is more backtracking is required. When parsing #CCC you don't know that the second C is the green component until you hit the end of the string; when parsing #CCCCCC you don't know that the second C is still part of the red component until you see the 4th C.