芒果小站

  1. 全球最具业界良心的主机 - Linode

    毫无疑问,目前做得最好的主机供应商

    猛击这里查看

  2. 芒果小站目前使用的主机 - Linode

    客服响应快,随时退款,XEN 架构稳定

    猛击这里查看

  3. 最好的日本东京线路主机 - Linode

    可选弗里蒙特、达拉斯、亚特兰大、纽瓦克、伦敦、东京机房

    猛击这里查看

  • 1
  • 2
  • 3
切换到精简模式
1

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

作者 芒果/分类 代码/发布于 2013-04-17 10:32

不同的浏览器在获取 css 颜色属性时,返回的结果不尽相同。比如会有 #FFF, #ffffff 和 rgb(255,255,255) 等多种格式。

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]);
}

用这个方法可以将 rgb 颜色值转换为 16 进制,需要大写颜色值的话使用 toUpperCase() 方法即可。

另外,提供符合 rgb(0,0,0) rgba(0,0,0,0) 格式的正则表达式一枚。

/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([.\d]+))?\)$/
版权所有,转载请注明出处。
转载自 <a href="http://mangguo.org/javascript-convert-rgb-color-to-hex-color/" title="Javascript 将 rgb 颜色值转换为 16 进制" rel="bookmark">Javascript 将 rgb 颜色值转换为 16 进制 | 芒果小站</a>
如果喜欢这篇文章,欢迎订阅芒果小站以获得最新内容。

已经有 1 条群众意见

  1. airoschou /2013-04-18 20:47

    原来是不同浏览器的关系哦,又学到啦 回应

    #1

下面我简单说几句