以下为ChatGPT自动生成的解答,正确与否请自行判断。

BFE.devAI解答 - JavaScript 代码题
78. HEX转换为RGBA

function hexToRgb(hex) {
  // 去除可能存在的 # 号
  hex = hex.replace("#", "");
  // 如果不是合法的 3/6 位十六进制颜色码,返回 false
  if (!hex.match(/^([0-9a-f]{3}|[0-9a-f]{6})$/i)) {
    return false;
  }
  // 将 3 位颜色码转换为 6 位
  if (hex.length === 3) {
    hex = hex.replace(/(.)/g, "$1$1");
  }
  // 将 16 进制颜色码转换为 RGB 数值
  var hexNum = parseInt(hex, 16);
  var r = hexNum >> 16;
  var g = (hexNum & 0x00ff00) >> 8;
  var b = hexNum & 0x0000ff;
  // 如果 RGB 数值不合法,返回 false
  if (isNaN(r) || isNaN(g) || isNaN(b) || r > 255 || g > 255 || b > 255) {
    return false;
  }
  // 转换 RGB 数值为函数格式的 RGBA
  var alpha = 1;
  var rgba = "rgba(" + r + "," + g + "," + b + "," + alpha + ")";
  return rgba;
}

以上代码使用正则表达式判断颜色码是否合法,使用位运算将 16 进制颜色码转换成 RGB 数值,最后将 RGB 数值按照函数格式拼接并返回即可。需要注意的是,如果没有给出 alpha 值,函数格式为 rgba(r, g, b, 1)