web-utils-super
Version:
前端函数库
29 lines (27 loc) • 895 B
JavaScript
/**
* @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;