将RGB颜色值转换为RGBA 0.75 alpha

我有以下代码来获取元素的背景颜色。

var currentColor = $(this).css('background-color'); 

返回类似rgb(123,123,123)

我现在要做的是将其转换为rgba并以0.75 alpha显示

所以返回像rgba(123,123,123,0.75)这样的东西

有任何想法吗?

因为对于没有alpha的元素,jQuery似乎总是返回像rgb(r, g, b)这样的颜色,你可以简单地使用:

 $(this).css('background-color').replace(')', ', 0.75)').replace('rgb', 'rgba'); 

只需确保背景颜色不是rgba:

 var bg = $(this).css('background-color'); if(bg.indexOf('a') == -1){ var result = bg.replace(')', ', 0.75)').replace('rgb', 'rgba'); } 

http://regex101.com/r/lT9iM4

 var re = /(rgb)\(([0-9]+),\s+([0-9]+),\s+([0-9]+)/; var currentColor = $(this).css('background-color'); var subst = 'rgba($2,$3,$4,0.75'; $(this).css('background-color', currentColor.replace(re, subst)); 

使用正则表达式的另一种解决方 但正如Cerbrus提到的那样,使用正则表达式来解决这个问题很简单。

另一个正则表达式尝试http://jsfiddle.net/hc3BA/

 var colour = 'rgb(123,123,123)', new_col = colour.replace(/rgb/i, "rgba"); new_col = new_col.replace(/\)/i,',0.75)');