zoukankan      html  css  js  c++  java
  • JS实现颜色值格式转换 rgb和十六进制的转换

    【16进制转换为RGB 】
    16进制一般有3位或者6位,如果为3位的话,需要补齐为6位
     set16ToRgb(str){
            var reg = /^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/
            if(!reg.test(str)){return;}
            let newStr = (str.toLowerCase()).replace(/#/g,'')
            let len = newStr.length;
            if(len == 3){
                let t = ''
                for(var i=0;i<len;i++){
                    t += newStr.slice(i,i+1).concat(newStr.slice(i,i+1))
                }
                newStr = t
            }
            let arr = []; //将字符串分隔,两个两个的分隔
            for(var i =0;i<6;i=i+2){
                let s = newStr.slice(i,i+2)
                arr.push(parseInt("0x" + s))
            }
            return 'rgb(' + arr.join(",")  + ')';
        }
    调用方法如: set16ToRgb("#3ef")

    【RGB转换为16进制 】

     //将rgb的转换为16进制
        setRgbTo16(str){
            let reg = /^(rgb|RGB)/;
            if(!reg.test(str)){return;}
            var arr = str.slice(4, str.length-1).split(",")
            let color = '#';
            for(var i=0;i<arr.length;i++){
                 var t = Number(arr[i]).toString(16)
                 if(t == "0"){   //如果为“0”的话,需要补0操作,否则只有5位数
                     t =  t + "0"
                 }
                 color += t;
            }
            return color;
        }
    调用方法如:setRgbTo16("rgb(255,0,255)");
  • 相关阅读:
    NTT算法小结
    FFT算法小结
    [USACO18DEC]Balance Beam
    洛谷4014分配问题
    洛谷4015运输问题
    洛谷3356火星探险问题
    python中函数详解
    python函数详解
    Python中对文件处理
    Python中的字符编码
  • 原文地址:https://www.cnblogs.com/jtjds/p/15508653.html
Copyright © 2011-2022 走看看