UNPKG

web-utils-super

Version:

前端函数库

29 lines (27 loc) 895 B
/** * @desc: 16进制颜色转 RGB | RGBA 字符串,有透明度则转换为RGBA * @param {String} color 16进制颜色 * @param {Number} opa 透明度 * @return {String} */ function colorToRGB(color, opa) { var pattern = /^(#?)[a-fA-F0-9]{6}$/; //16进制颜色值校验规则 var isOpa = typeof opa == "number"; //判断是否有设置不透明度 if (!pattern.test(color)) { //如果16进制值不符合规则返回空字符 return ""; } var v = color.replace(/#/, ""); //如果有#号先去除#号 var rgbArr = []; var rgbStr = ""; for (var i = 0; i < 3; i++) { var item = v.substring(i * 2, i * 2 + 2); var num = parseInt(item, 16); rgbArr.push(num); } rgbStr = rgbArr.join(); rgbStr = "rgb" + (isOpa ? "a" : "") + "(" + rgbStr + (isOpa ? "," + opa : "") + ")"; return rgbStr; } module.exports = colorToRGB;