GeeksforGeeks App
Open App
Browser
Continue

# Check if a given string is a valid Hexadecimal Color Code or not

Given a string str, the task is to check whether the given string is an HTML Hex Color Code or not. Print Yes if it is, otherwise print No.

Examples:

Input: str = “#1AFFa1”
Output: Yes

Input: str = “#F00”
Output: Yes

Input: str = “123456”
Output: No

Approach:  An HTML Hex Color Code follows the below-mentioned set of rules:

1. It starts with the ‘#’ symbol.
2. Then it is followed by the letters from a-f, A-F and/or digits from 0-9.
3. The length of the hexadecimal color code should be either 6 or 3, excluding ‘#’ symbol.
4. For example: #abc, #ABC, #000, #FFF, #000000, #FF0000, #00FF00, #0000FF, #FFFFFF are all valid Hexadecimal color codes.

Now, to solve the above problem follow the below steps:

1. Check the string str for the following conditions:
• If the first character is not #, return false.
• If the length is not 3 or 6. If not, return false.
• Now, check for all characters other than the first character that are 0-9, A-F or a-f.
2. If all the conditions mentioned above are satisfied, then return true.
3. Print answer according to the above observation.

Below is the implementation of the above approach:

## CPP

 `// C++ program for the above approach` `#include ``using` `namespace` `std;` `// Function to validate``// the HTML hexadecimal color code.``bool` `isValidHexaCode(string str)``{``    ``if` `(str[0] != ``'#'``)``        ``return` `false``;` `    ``if` `(!(str.length() == 4 or str.length() == 7))``        ``return` `false``;` `    ``for` `(``int` `i = 1; i < str.length(); i++)``        ``if` `(!((str[i] >= ``'0'` `&& str[i] <= 9)``              ``|| (str[i] >= ``'a'` `&& str[i] <= ``'f'``)``              ``|| (str[i] >= ``'A'` `|| str[i] <= ``'F'``)))``            ``return` `false``;` `    ``return` `true``;``}` `// Driver Code``int` `main()``{``    ``string str = ``"#1AFFa1"``;` `    ``if` `(isValidHexaCode(str)) {``        ``cout << ``"Yes"` `<< endl;``    ``}``    ``else` `{``        ``cout << ``"No"` `<< endl;``    ``}``    ``return` `0;``}`

## Java

 `// Java program for the above approach``import` `java.util.*;``class` `GFG{` `    ``// Function to validate``    ``// the HTML hexadecimal color code.``    ``static` `boolean` `isValidHexaCode(String str)``    ``{``        ``if` `(str.charAt(``0``) != ``'#'``)``            ``return` `false``;` `        ``if` `(!(str.length() == ``4` `|| str.length() == ``7``))``            ``return` `false``;` `        ``for` `(``int` `i = ``1``; i < str.length(); i++)``            ``if` `(!((str.charAt(i) >= ``'0'` `&& str.charAt(i) <= ``9``)``                ``|| (str.charAt(i) >= ``'a'` `&& str.charAt(i) <= ``'f'``)``                ``|| (str.charAt(i) >= ``'A'` `|| str.charAt(i) <= ``'F'``)))``                ``return` `false``;` `        ``return` `true``;``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `main(String args[])``    ``{``        ``String str = ``"#1AFFa1"``;` `        ``if` `(isValidHexaCode(str)) {``            ``System.out.println(``"Yes"``);``        ``}``        ``else` `{``            ``System.out.println(``"No"``);``        ``}``    ``}``}` `// This code is contributed by Samim Hossain Mondal.`

## Python3

 `# python program for the above approach` `# Function to validate``# the HTML hexadecimal color code.``def` `isValidHexaCode(``str``):` `    ``if` `(``str``[``0``] !``=` `'#'``):``        ``return` `False` `    ``if` `(``not``(``len``(``str``) ``=``=` `4` `or` `len``(``str``) ``=``=` `7``)):``        ``return` `False` `    ``for` `i ``in` `range``(``1``, ``len``(``str``)):``        ``if` `(``not``((``str``[i] >``=` `'0'` `and` `str``[i] <``=` `'9'``) ``or` `(``str``[i] >``=` `'a'` `and` `str``[i] <``=` `'f'``) ``or` `(``str``[i] >``=` `'A'` `or` `str``[i] <``=` `'F'``))):``            ``return` `False` `    ``return` `True`  `# Driver Code``if` `__name__ ``=``=` `"__main__"``:` `    ``str` `=` `"#1AFFa1"` `    ``if` `(isValidHexaCode(``str``)):``        ``print``(``"Yes"``)` `    ``else``:``        ``print``(``"No"``)` `    ``# This code is contributed by rakeshsahni`

## C#

 `// C# program for the above approach``using` `System;``class` `GFG{` `    ``// Function to validate``    ``// the HTML hexadecimal color code.``    ``static` `bool` `isValidHexaCode(``string` `str)``    ``{``        ``if` `(str[0] != ``'#'``)``            ``return` `false``;` `        ``if` `(!(str.Length == 4 || str.Length == 7))``            ``return` `false``;` `        ``for` `(``int` `i = 1; i < str.Length; i++)``            ``if` `(!((str[i] >= ``'0'` `&& str[i] <= 9)``                ``|| (str[i] >= ``'a'` `&& str[i] <= ``'f'``)``                ``|| (str[i] >= ``'A'` `|| str[i] <= ``'F'``)))``                ``return` `false``;` `        ``return` `true``;``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `Main()``    ``{``        ``string` `str = ``"#1AFFa1"``;` `        ``if` `(isValidHexaCode(str)) {``            ``Console.Write(``"Yes"``);``        ``}``        ``else` `{``            ``Console.Write(``"No"``);``        ``}``    ``}``}``// This code is contributed by Samim Hossain Mondal.`

## Javascript

 ``

Output

`Yes`

Time Complexity: O(N)
Auxiliary Space: O(1)

Approach 2: Regex Expression:

In this approach, we have used regex library to define a regular expression pattern to match the HTML hexadecimal color code. The regular expression pattern ^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})\$ matches the string that starts with # and followed by either 6 hexadecimal digits or 3 hexadecimal digits. The regex_match function checks if the given string matches the regular expression pattern or not, and returns true if it matches, else false.

Here is the code given below:

## C++

 `#include ``#include ``using` `namespace` `std;` `// Function to validate``// the HTML hexadecimal color code using regex.``bool` `isValidHexaCode(string str)``{``    ``regex hexaCode(``"^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})\$"``);``    ``return` `regex_match(str, hexaCode);``}` `// Driver Code``int` `main()``{``    ``string str = ``"#1AFFa1"``;` `    ``if` `(isValidHexaCode(str)) {``        ``cout << ``"Yes"` `<< endl;``    ``}``    ``else` `{``        ``cout << ``"No"` `<< endl;``    ``}``    ``return` `0;``}`

Output

```Yes
```

Time Complexity: O(N)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up