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

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

        /**
         * 将颜色值rgb格式转换为HEX的格式
         * @param {rgb} rgb 需要转换的rgb字符串
         * @return {string}  ;
         */
        function rgbToHex(rgb) {
          let arr = rgb
            .replace("rgb", "")
            .replace("(", "")
            .replace(")", "")
            .split(",");
          // 转十六进制
          let h = parseInt(arr[0]).toString(16);
          let e = parseInt(arr[1]).toString(16);
          let x = parseInt(arr[2]).toString(16);
          return "#" + h + e + x;
        }
        let rgb = "rgb(33,44,55)";
        console.log(rgbToHex(rgb));
        /**
         * 将颜色值HEX格式转换为rgb的格式
         * @param {hex} hex 需要转换的rgb字符串
         * @return {string}  ;
         */
        function hexToRgb(hex) {
          let str = hex.replace("#", "");
          if (str.length % 3) {
            return "hex格式不正确!";
          }
          //获取截取的字符长度
          let count = str.length / 3;
          //根据字符串的长度判断是否需要 进行幂次方
          let power = 6 / str.length;
          let r = parseInt("0x" + str.substring(0 * count, 1 * count)) ** power;
          let g = parseInt("0x" + str.substring(1 * count, 2 * count)) ** power;
          let b = parseInt("0x" + str.substring(2 * count)) ** power;

          return `rgb(${r}, ${g}, ${b})`;
        }
        let hex = "#212c37";
        console.log(hexToRgb(hex));

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值