如何从CSS颜色中提取r,g,b值?

Mis*_*hko 16 javascript css jquery colors rgba

什么是最简单的转型方式

$('#my_element').css('backgroundColor')
Run Code Online (Sandbox Code Playgroud)

像这样的对象:

{ r: red_value, g: green_value, b: blue_value, a: alpha_value }
Run Code Online (Sandbox Code Playgroud)

小智 24

var c = $('body').css('background-color');
var rgb = c.replace(/^(rgb|rgba)\(/,'').replace(/\)$/,'').replace(/\s/g,'').split(',');

for(var i in rgb) {
  console.log(rgb[i]);
}
Run Code Online (Sandbox Code Playgroud)

在这里试试http://jsbin.com/uhawa4

编辑:

var c = $('body').css('background-color');
var rgb = c.replace(/^rgba?\(|\s+|\)$/g,'').split(',');

for(var i in rgb) {
  console.log(rgb[i]);
}
Run Code Online (Sandbox Code Playgroud)

甚至更简单的方法,只针对数字

var c = 'rgba(60,4,2,6)';
var rgb = c.match(/\d+/g);

for(var i in rgb) {
  console.log(rgb[i]);
}
Run Code Online (Sandbox Code Playgroud)

  • 替换`var rgb = c.match(/\d +/g);```var rgb = c.match(/ [.?\ d] +/g);`以匹配rgba中alpha的浮点数正确的字符串,如`rgba(60,4,2,0.3)` (3认同)