Back to Freecodecamp

Challenge 166: Hex Validator

curriculum/challenges/english/blocks/daily-coding-challenges-javascript/696655d24b614176d4c9b789.md

latest1.4 KB
Original Source

--description--

Given a string, determine whether it is a valid CSS hex color. A valid CSS hex color must:

  • Start with a #, and
  • be followed by either 3 or 6 hexadecimal characters.

Hexadecimal characters are numbers 0 through 9 and letters a through f (case-insensitive).

--hints--

isValidHex("#123") should return true.

js
assert.isTrue(isValidHex("#123"));

isValidHex("#123abc") should return true.

js
assert.isTrue(isValidHex("#123abc"));

isValidHex("#ABCDEF") should return true.

js
assert.isTrue(isValidHex("#ABCDEF"));

isValidHex("#0a1B2c") should return true.

js
assert.isTrue(isValidHex("#0a1B2c"));

isValidHex("#12G") should return false.

js
assert.isFalse(isValidHex("#12G"));

isValidHex("#1234567") should return false.

js
assert.isFalse(isValidHex("#1234567"));

isValidHex("#12 3") should return false.

js
assert.isFalse(isValidHex("#12 3"));

isValidHex("fff") should return false.

js
assert.isFalse(isValidHex("fff"));

--seed--

--seed-contents--

js
function isValidHex(str) {

  return str;
}

--solutions--

js
function isValidHex(str) {
  if (str[0] !== "#") return false;

  const hex = str.slice(1);
  if (hex.length !== 3 && hex.length !== 6) return false;

  for (let char of hex) {
    if (!/[0-9a-fA-F]/.test(char)) {
      return false;
    }
  }

  return true;
}