Conversion de la valeur de couleur RVB en RVBA à 0,75 alpha

J’ai le code suivant pour obtenir la couleur de fond d’un élément.

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

qui retourne quelque chose comme rgb(123,123,123)

Ce que je veux maintenant convertir en rgba et le montrer à 0,75 alpha

Donc, retourner quelque chose comme rgba(123,123,123,0.75)

Des idées?

Comme jQuery semble toujours renvoyer la couleur comme rgb(r, g, b) pour les éléments sans alpha, vous pouvez simplement utiliser:

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

Assurez-vous juste que la couleur de fond ne soit pas déjà 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)); 

Une autre solution utilisant regex. Mais comme Cerbrus l’a mentionné, utiliser regex pour quelque chose d’aussi simple est excessif.

Un autre essai regex 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)');