原文网址:https://www.youyong.top/article/1159366a4e3b0
有一个需求是将 rgb(255,255,255) 或 rgba(255,255,255),这样的颜色值转换成16进制(#FFFFFFF)的形式表示。
一开始以为有点难,后来发现一个toString() 函数就可以帮我们搞定!
原文网址:https://www.youyong.top/article/1159366a4e3b0
有一个需求是将 rgb(255,255,255) 或 rgba(255,255,255),这样的颜色值转换成16进制(#FFFFFFF)的形式表示。
一开始以为有点难,后来发现一个toString() 函数就可以帮我们搞定!
原文网址: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 标准允许实现返回任意值。
其他转十进制:
parseInt(x,2) //二进制转10进制
parseInt(x,8)); //八进制转10进制
parseInt(x,16)); //十六进制转10进制
其他转其他
先用parseInt转成十进制再用toString转到目标进制
作者声明:本篇文章系本人原创,欢迎分享,但未经许可,谢绝转载。
共 1 条留言
iPhone X 跌破发行价,苏宁200亿入股恒大 | 财经日日评
资深黄牛现身说法:iPhone X价格秒变不停,就像炒股一样
看片要当心了!色站不只掏空你,还可能掏空你的电脑 | 网页中可能包含JS挖矿机脚本!!!
说说Javascript的闭包(Closure)是怎么回事?
ajax返回的http status是200 没有进success方法 却进入了error方法?
手机扫一扫
分享文章