码迷,mamicode.com
首页 > 其他好文 > 详细

color 16进制格式和rgb的相互转换

时间:2020-08-10 21:02:05      阅读:72      评论:0      收藏:0      [点我收藏+]

标签:red   function   replace   else   var   进制转化   定义   log   debug   

hex2Rgb(hex) {
        //十六进制转为RGB
        var rgb = [] // 定义rgb数组
        if (/^\#[0-9A-F]{3}$/i.test(hex)) {
          //判断传入是否为#三位十六进制数
          let sixHex = ‘#‘
          hex.replace(/[0-9A-F]/gi, function (kw) {
            sixHex += kw + kw //把三位16进制数转化为六位
          })
          hex = sixHex //保存回hex
        }
        if (/^#[0-9A-F]{6}$/i.test(hex)) {
          //判断传入是否为#六位十六进制数
          hex.replace(/[0-9A-F]{2}/gi, function (kw) {
            rgb.push(eval(‘0x‘ + kw)) //十六进制转化为十进制并存如数组
          })
          debugger
          return { red: rgb[0], green: rgb[1], blue: rgb[2] } //输出RGB格式颜色
        } else {
          console.log(`Input ${hex} is wrong!`)
          return ‘rgb(0,0,0)‘
        }
      },
      //"rgb(255,255,111)"
      rgb2Hex(rgb) {
        if (/^rgb\((\d{1,3}\,){2}\d{1,3}\)$/i.test(rgb)) {
          //test RGB
          var hex = ‘#‘ //定义十六进制颜色变量
          rgb.replace(/\d{1,3}/g, function (kw) {
            //提取rgb数字
            kw = parseInt(kw).toString(16) //转为十六进制
            kw = kw.length < 2 ? 0 + kw : kw //判断位数,保证两位
            hex += kw //拼接
          })
          return hex //返回十六进制
        } else {
          console.log(`Input ${rgb} is wrong!`)
          return ‘#000‘ //输入格式错误,返回#000
        }
      }

color 16进制格式和rgb的相互转换

标签:red   function   replace   else   var   进制转化   定义   log   debug   

原文地址:https://www.cnblogs.com/superman-21/p/13472101.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!