您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

背景色十六进制到JavaScript变量

背景色十六进制到JavaScript变量

试试看:

var rgbString = "rgb(0, 70, 255)"; // get this in whatever way.

var parts = rgbString.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
// parts Now should be ["rgb(0, 70, 255", "0", "70", "255"]

delete (parts[0]);
for (var i = 1; i <= 3; ++i) {
    parts[i] = parseInt(parts[i]).toString(16);
    if (parts[i].length == 1) parts[i] = '0' + parts[i];
} 
var hexString ='#'+parts.join('').toUpperCase(); // "#0070FF"

针对以下评论中的问题:

我正在尝试修改正则表达式以处理rgb和rgba,这取决于我得到哪一个。有什么提示吗?谢谢。

我不确定在此问题的上下文中是否有意义(因为您无法用十六进制表示rgba颜色),但我想可能还有其他用途。无论如何,您可以将正则表达式更改为如下形式:

/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(0\.\d+))?\)$/

输出示例:

var d = document.createElement('div');
d.style.backgroundColor = 'rgba( 255,  60, 50, 0)';

/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(1|0\.\d+))?\)$/.exec(d.style.backgroundColor);

// ["rgba(255, 60, 50, 0.33)", "255", "60", "50", "0.33"]
javascript 2022/1/1 18:14:22 有520人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶