//十六進位制顏色值的正規表示式 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 } }