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
}