js实现十六进制颜色值和rgb格式颜色值互转

  1. /*RGB颜色转换为16进制*/  
  2. String.prototype.colorHex = function(){  
  3.     //十六进制颜色值的正则表达式 
  4.     var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
  5.     var that = this;  
  6.     if(/^(rgb|RGB)/.test(that)){  
  7.         var aColor = that.replace(/(?: | |rgb|RGB)*/g,"").split(",");  
  8.         var strHex = "#";  
  9.         for(var i=0; i<aColor.length; i++){  
  10.             var hex = Number(aColor[i]).toString(16);  
  11.             if(hex === "0"){  
  12.                 hex += hex;   
  13.             }  
  14.             strHex += hex;  
  15.         }  
  16.         if(strHex.length !== 7){  
  17.             strHex = that;    
  18.         }  
  19.         return strHex;  
  20.     }else if(reg.test(that)){  
  21.         var aNum = that.replace(/#/,"").split("");  
  22.         if(aNum.length === 6){  
  23.             return that;      
  24.         }else if(aNum.length === 3){  
  25.             var numHex = "#";  
  26.             for(var i=0; i<aNum.length; i+=1){  
  27.                 numHex += (aNum[i]+aNum[i]);  
  28.             }  
  29.             return numHex;  
  30.         }  
  31.     }else{  
  32.         return that;      
  33.     }  
  34. }; 
         
  1. /*16进制颜色转为RGB格式*/  
  2. String.prototype.colorRgb = function(){  
  3.     //十六进制颜色值的正则表达式 
  4.     var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
  5.     var sColor = this.toLowerCase();  
  6.     if(sColor && reg.test(sColor)){  
  7.         if(sColor.length === 4){  
  8.             var sColorNew = "#";  
  9.             for(var i=1; i<4; i+=1){  
  10.                 sColorNew += sColor.slice(i,i+1).concat(sColor.slice(i,i+1));     
  11.             }  
  12.             sColor = sColorNew;  
  13.         }  
  14.         //处理六位的颜色值  
  15.         var sColorChange = [];  
  16.         for(var i=1; i<7; i+=2){  
  17.             sColorChange.push(parseInt("0x"+sColor.slice(i,i+2)));    
  18.         }  
  19.         return "RGB(" + sColorChange.join(",") + ")";  
  20.     }else{  
  21.         return sColor;    
  22.     }  
  23. }; 
转摘于http://blog.csdn.net/haiqiao_2010/article/details/8533611
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值