原文网址:https://www.youyong.top/article/1159366a4e3b0
代码如下:
/**
* 统一将颜色值使用16进制形式表示
* @name changeColor
* @grammar changeColor(value) => value
* @example
* rgb(255,255,255) => "#ffffff"
*/
function changeColor(value) {
if (/rgba?/.test(value)) {
var array = value.split(",");
if (array.length > 3)
return "";
value = "#";
for (var i = 0, color; color = array[i++];) {
color = parseInt(color.replace(/[^\d]/gi, ''), 10).toString(16);
value += color.length == 1 ? "0" + color : color;
}
value = value.toUpperCase();
}
return value;
}
// 函数调用
var hexcolor1= changeColor('rgb(255,255,0)');
console.log(hexcolor1); //#FFFF00
var hexcolor2= changeColor('rgba(255,255,0)');
console.log(hexcolor2); //#FFFF00
互转工具推荐 :http://tool.wode321.com/web/rgb2hex
更多:
十进制转其他 :
number.toString(radix)
参数radix可选。规定表示数字的基数,使 2 ~ 36 之间的整数。若省略该参数,则使用基数 10。但是要注意,如果该参数是 10 以外的其他值,则 ECMAScript 标准允许实现返回任意值。
- 2 - 数字以二进制值显示
- 8 - 数字以八进制值显示
- 16 - 数字以十六进制值显示
其他转十进制:
parseInt(x,2) //二进制转10进制
parseInt(x,8)); //八进制转10进制
parseInt(x,16)); //十六进制转10进制
其他转其他
先用parseInt转成十进制再用toString转到目标进制
原文网址:https://www.youyong.top/article/1159366a4e3b0