//十六进制颜色值的正则表达式
var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
/*16进制颜色转为RGB格式*/
var colorRgb = function(color){
if(color.length>7){
var num = color.slice(7,9).toUpperCase();
var x = opacityColor(num)
color = color.slice(0,7);
}
var sColor =color.toLowerCase();
if(sColor && reg.test(sColor)){
if(sColor.length === 4){
var sColorNew = "#";
for(var i=1; i<4; i+=1){
sColorNew += sColor.slice(i,i+1).concat(sColor.slice(i,i+1));
}
sColor = sColorNew;
}
//处理六位的颜色值
var sColorChange = [];
for(var i=1; i<7; i+=2){
sColorChange.push(parseInt("0x"+sColor.slice(i,i+2)));
}
//转换为rgb,此时不用传递参数
if(x==undefined){
return "rgb(" + sColorChange.join(",") + ")";
}else{
//转换为rgba,透明度为传递的参数x;
return "rgba(" + sColorChange.join(",") + ","+x+")";
}
}else{
return sColor;
}
};
function opacityColor(num){
if(num==‘FF‘){
return 1
}else if(num==‘FC‘){
return .99
}else if(num==‘FA‘){
return .98
}else if(num==‘F7‘){
return .97
}else if(num==‘F5‘){
return .96
}else if(num==‘F2‘){
return .95
}else if(num==‘F0‘){
return .94
}else if(num==‘ED‘){
return .93
}else if(num==‘EB‘){
return .92
}else if(num==‘E8‘){
return .91
}else if(num==‘E6‘){
return .9
}else if(num==‘E3‘){
return .89
}else if(num==‘E0‘){
return .88
}else if(num==‘DE‘){
return .87
}else if(num==‘DB‘){
return .86
}else if(num==‘D9‘){
return .85
}else if(num==‘D6‘){
return .84
}else if(num==‘D4‘){
return .83
}else if(num==‘D1‘){
return .82
}else if(num==‘CF‘){
return .81
}else if(num==‘CC‘){
return .80
}else if(num==‘C9‘){
return .79
}else if(num==‘C7‘){
return .78
}else if(num==‘C4‘){
return .77
}else if(num==‘C2‘){
return .76
}else if(num==‘BF‘){
return .75
}else if(num==‘BD‘){
return .74
}else if(num==‘BA‘){
return .73
}else if(num==‘B8‘){
return .72
}else if(num==‘B5‘){
return .71
}else if(num==‘B3‘){
return .70
}else if(num==‘B0‘){
return .69
}else if(num==‘AD‘){
return .68
}else if(num==‘AB‘){
return .67
}else if(num==‘A8‘){
return .66
}else if(num==‘A6‘){
return .65
}else if(num==‘A3‘){
return .64
}else if(num==‘A1‘){
return .63
}else if(num==‘9E‘){
return .62
}else if(num==‘9C‘){
return .61
}else if(num==‘99‘){
return .6
}else if(num==‘96‘){
return .59
}else if(num==‘94‘){
return .58
}else if(num==‘91‘){
return .57
}else if(num==‘8F‘){
return .56
}else if(num==‘8C‘){
return .55
}else if(num==‘8A‘){
return .54
}else if(num==‘87‘){
return .53
}else if(num==‘85‘){
return .52
}else if(num==‘82‘){
return .51
}else if(num==‘80‘){
return .5
}else if(num==‘7D‘){
return .49
}else if(num==‘7A‘){
return .48
}else if(num==‘78‘){
return .47
}else if(num==‘75‘){
return .46
}else if(num==‘73‘){
return .45
}else if(num==‘70‘){
return .44
}else if(num==‘6E‘){
return .43
}else if(num==‘6B‘){
return .42
}else if(num==‘69‘){
return .41
}else if(num==‘66‘){
return .4
}else if(num==‘63‘){
return .39
}else if(num==‘61‘){
return .38
}else if(num==‘5E‘){
return .37
}else if(num==‘5C‘){
return .36
}else if(num==‘59‘){
return .35
}else if(num==‘57‘){
return .34
}else if(num==‘54‘){
return .33
}else if(num==‘52‘){
return .32
}else if(num==‘4F‘){
return .31
}else if(num==‘4D‘){
return .3
}else if(num==‘4A‘){
return .29
}else if(num==‘47‘){
return .28
}else if(num==‘45‘){
return .27
}else if(num==‘42‘){
return .26
}else if(num==‘40‘){
return .25
}else if(num==‘3D‘){
return .24
}else if(num==‘3B‘){
return .23
}else if(num==‘38‘){
return .22
}else if(num==‘36‘){
return .21
}else if(num==‘33‘){
return .2
}else if(num==‘30‘){
return .19
}else if(num==‘2E‘){
return .18
}else if(num==‘2B‘){
return .17
}else if(num==‘29‘){
return .16
}else if(num==‘26‘){
return .15
}else if(num==‘24‘){
return .14
}else if(num==‘21‘){
return .13
}else if(num==‘1F‘){
return .12
}else if(num==‘1C‘){
return .11
}else if(num==‘1A‘){
return .1
}else if(num==‘17‘){
return .09
}else if(num==‘14‘){
return .08
}else if(num==‘12‘){
return .07
}else if(num==‘0F‘){
return .06
}else if(num==‘0D‘){
return .05
}else if(num==‘0A‘){
return .04
}else if(num==‘08‘){
return .03
}else if(num==‘05‘){
return .02
}else if(num==‘03‘){
return .01
}else if(num==‘00‘){
return 0
}
}
原文:https://www.cnblogs.com/huangqiming/p/9025729.html