Javascript 将 rgb 颜色值转换为 16 进制值的代码

发布时间:2019-07-17编辑:脚本学堂
本文分享下,在javascrpt中将rgb颜色值转换为16进制值的方法,提供一个自定义函数,供大家学习参考。
我们知道,不同的浏览器在获取 css 颜色属性时,返回的结果不尽相同。
比如会有 #FFF, #ffffff 和 rgb(255,255,255) 等多种格式。
以下这个函数,提供了一种将rgb颜色值转换为16进制值的方法。
代码:
<script>
//颜色值转换 
//rgb颜色值 --> 16进制值
function rgb2hex(rgb) {
 rgb = rgb.match(/^rgb((d+),s*(d+),s*(d+))$/);
 function hex(x) {
  return ("0" + parseInt(x).toString(16)).slice(-2);
 }
 return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
}
</script>
此方法可以将 rgb 颜色值转换为 16 进制,需要大写颜色值的话使用 toUpperCase() 方法即可。
另外,提供符合 rgb(0,0,0) rgba(0,0,0,0) 格式的正则表达式一枚。
/^rgba?((d+),s*(d+),s*(d+)(?:,s*([.d]+))?)$/