When the whole world is about to rain, let's make it clear in our heart together

热爱前端开发,专注于前端

JS实现颜色值格式转换 rgb和十六进制的转换

【16进制转换为RGB 】
16进制一般有3位或者6位,如果为3位的话,需要补齐为6位
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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进制 】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//将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)");
posted @   婷风  阅读(1730)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示