javascript实现十六进制颜色值(HEX)和RGB格式相互转换

 更新时间:2014年06月20日 09:33:32   投稿:junjie  
这篇文章主要介绍了javascript实现十六进制颜色值(HEX)和RGB格式之间的转换,使用正则的方法实现RGB颜色转换为16进制,需要的朋友可以参考下

在日常开发中,经常会用到不同格式的颜色域值之间的相互转换,以下给出一种解决方法。

复制代码 代码如下:

//十六进制颜色值的正则表达式
var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
/*RGB颜色转换为16进制*/
String.prototype.colorHex = function(){
    var that = this;
    if(/^(rgb|RGB)/.test(that)){
        var aColor = that.replace(/(?:\(|\)|rgb|RGB)*/g,"").split(",");
        var strHex = "#";
        for(var i=0; i<aColor.length; i++){
            var hex = Number(aColor).toString(16);
            if(hex === "0"){
                hex += hex;       
            }
            strHex += hex;
        }
        if(strHex.length !== 7){
            strHex = that;       
        }
        return strHex;
    }else if(reg.test(that)){
        var aNum = that.replace(/#/,"").split("");
        if(aNum.length === 6){
            return that;       
        }else if(aNum.length === 3){
            var numHex = "#";
            for(var i=0; i<aNum.length; i+=1){
                numHex += (aNum+aNum);
            }
            return numHex;
        }
    }else{
        return that;       
    }};
 /*16进制颜色转为RGB格式*/
 String.prototype.colorRgb = function(){
    var sColor = this.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)));       
        }
        return "RGB(" + sColorChange.join(",") + ")";
    }else{
        return sColor;       
    }};

使用颜色转换方法:
复制代码 代码如下:

ar sRgb = "RGB(23, 245, 56)" , sHex = "#34538b";
var sHexColor = sRgb.colorHex();
var sRgbColor = sHex.colorRgb();

相关文章

  • 每周一练 之 数据结构与算法(Stack)

    每周一练 之 数据结构与算法(Stack)

    这篇文章主要介绍了数据结构与算法(Stack),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 微信小程序 this.triggerEvent()的具体使用

    微信小程序 this.triggerEvent()的具体使用

    这篇文章主要介绍了微信小程序 this.triggerEvent()的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • JavaScript相等运算符的九条规则示例详解

    JavaScript相等运算符的九条规则示例详解

    这篇文章主要给大家介绍了关于JavaScript相等运算符的九条规则,文中通过示例代码介绍的非常详细,对大家的学习或者使用JavaScript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-10-10
  • javascript制作loading动画效果 loading效果

    javascript制作loading动画效果 loading效果

    项目中多处要给ajax提交的时候增加等待动画效果,所以就写了一个简单的通用js方法,大家参考使用吧
    2014-01-01
  • js实现随机点名

    js实现随机点名

    这篇文章主要为大家详细介绍了js实现随机点名,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01
  • js String对象中常用方法小结(字符串操作)

    js String对象中常用方法小结(字符串操作)

    js String对象中常用方法小结,需要的朋友可以参考下
    2012-01-01
  • 微信小程序组件传值图示过程详解

    微信小程序组件传值图示过程详解

    这篇文章主要介绍了微信小程序组件传值图示过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • 关于layer.js使用心得-向弹出框传值问题

    关于layer.js使用心得-向弹出框传值问题

    这篇文章主要介绍了关于layer.js使用心得-向弹出框传值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 使用JS判断页面是首次被加载还是刷新

    使用JS判断页面是首次被加载还是刷新

    这篇文章主要介绍了js判断页面是首次被加载还是刷新,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • html+js实现简单的计算器代码(加减乘除)

    html+js实现简单的计算器代码(加减乘除)

    下面小编就为大家带来一篇html+js实现简单的计算器代码(加减乘除)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07

最新评论