当前位置: 首页 > 面试题库 >

背景色十六进制到JavaScript变量

薛霄
2023-03-14
问题内容

我是JavaScript和jQuery的新手,现在面临一个问题:

我需要将一些数据发布到PHP,并且其中一部分数据必须是div X的背景色十六进制。

jQuery具有css(“ background-color”)函数,通过它我可以将背景的RGB值转换为JavaScript变量。

CSS函数似乎返回了一个类似rgb(0,70,255)的字符串。

我找不到任何方法来获取背景颜色的十六进制(即使在CSS中将其设置为十六进制)。

因此,似乎我需要对其进行转换。我发现了一个将RGB转换为十六进制的函数,但是需要使用三个不同的变量r,g和b来调用它。所以我需要将字符串rgb(x,xx,xxx)解析为var
r = x; var g = xx; var b = xxx; 不知何故。

我试图用JavaScript在Google上解析字符串,但是我并不真正了解正则表达式。

有没有一种方法可以将div的背景颜色设置为十六进制,或者可以将字符串转换为3个不同的变量?


问题答案:

试试看:

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"]


 类似资料:
  • 问题内容: 如何将RGB格式的颜色转换为十六进制格式,反之亦然? 例如,转换为。 问题答案: 注 :这两个版本的期待整数值,并且,所以你需要,如果你有非整数值做自己的舍入。 以下将执行RGB到十六进制的转换,并添加任何所需的零填充: 转换另一种方式: 最后,在答案中讨论并在@cwolves的评论中建议使用的替代版本: 更新 这是它的一个版本,还解析了一个速记的三元组,例如“#03F”:

  • 问题内容: 如何获取元素的背景色代码? 我想要的是 问题答案: 检查下面的示例链接,然后单击div以获取十六进制的颜色值。

  • 两周以来,我一直在努力和阅读来解决这个问题,但我尝试的一切都没有奏效:-( 我正在使用python 2.7。 据我所知,我确实有一个base64字符串,格式如下: 我想把它转换成十六进制字符串。00000000194BD636AEDEAE4C9827C9465288D7F40700BA89A9BA12E1314B81606DB385F3B7B100000074656E0000BA89A9BA12E

  • 问题内容: 我会马上追逐。现在,我正在开发基于Web的应用程序。它具有基于PHP REST的体系结构,可提供XML文档。在许多这些文档中,属性是十六进制编码的图片字符串。 在客户端,jQuery AJAX获取其中包含图片的XML文档。我需要在某些标签中显示上述图片。但是,我缺乏有关此类方法的知识,因此在这里寻求帮助。 目标:以十六进制或base64 >>> HTML显示的图像的JavaScript

  • 这是我的java文本,看起来有点出乎意料,但是我想改变按钮的背景颜色,这取决于答案是正确的还是错误的 属于“voortgang-button”的css } 然而;现在的问题是我做错了什么?我是一个刚开始的JavaScript程序员,也是荷兰人,所以请多包涵;).

  • 问题内容: 如何将十进制转换为以下格式的十六进制(至少两位,零填充,没有0x前缀)? 输入: 输出: 输入: 输出: 我尝试过,但似乎它显示了第一个示例,但没有显示第二个示例。 问题答案: 将该功能与格式一起使用。 该部分要求使用至少2位数字,并使用零将其填充到长度,表示小写的十六进制。 的 格式规范的迷你语言 也给你大写十六进制输出,并且可以前缀字段宽度与以包括或前缀(取决于你阉羊使用或作为格式