以下为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)