js 颜色的16进制转rgb方法

914 阅读1分钟
  function hex2rgb(hex) {
    if (typeof hex !== "string") return;
    hex = hex.toLowerCase();
    var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
    if (hex && reg.test(hex)) {
      if (hex.length === 4) {
        var hexNew = "#";
        for (var i = 1; i < 4; i += 1) {
          hexNew += hex
            .slice(i, i + 1)
            .concat(hex.slice(i, i + 1));
        }
        hex = hexNew;
      }
      var hexChange = [];
      for (var i = 1; i < 7; i += 2) {
        hexChange.push(parseInt("0x" + hex.slice(i, i + 2)));
      }
      return "RGB(" + hexChange.join(",") + ")";
    }
    return hex;
  }
  let res = hex2rgb("#CC00FF");
  console.log("res", res);
</script>

<!-- 4种基本检测方法,从简单到复杂依次是:

1、检测全局对象(如window和navigator)是否拥有特定属性。 举例:检测是否支持本地存储

function supportLocalStorage(){

return ("localStorage" in window)&&window["localStorage"] !== null;

}

举例:检测是否支持web workers function supportWebWorkers(){

return !!window.Worker;//若不支持,则该属性的值为undefined

}

2、创建一个元素,然后检测该元素的DOM对象是否拥有特定的属性。 举例:检测是否支持canvas

function supportCanvas(){

return !!document.createElement("canvas").getContext; //检测是否有getContext()方法,但没有调用此方法

}

举例:检测是否支持video

function supportVideo(){

return !!document.createElement("video").canPlayType; //检测是否有canPlayType()方法,但没有调用此方法

}

3、创建一个元素,然后检测这个元素的DOM对象是否拥有特定方法,同时调用这个方法并检查这个返回值。 举例:检测浏览器是否支持的某种视频格式

function supportVideoType(){

return document.createElement("video").canPlayType('video/mp4;codecs="avc1.42E01E, mp4a.40.2"');

//调用特性方法,返回值为:probably、maybe、“”

}

4、创建一个元素,然后检测该元素的DOM对象设定的属性值,然后检查浏览器是否保留了该属性值。 举例:检测input元素是否支持“color”type

function supportColorType(){

var i=document.createElement("input")

i.setAttibute("type","color");

return i.type !=="text"//text为默认的type

}