方法一:
const colorToRGB = color => {
let color1, color2, color3
color = '' + color
if (typeof color !== 'string') return
if (color.charAt(0) == '#') {
color = color.substring(1)
}
if (color.length == 3) {
color = color[0] + color[0] + color[1] + color[1] + color[2] + color[2]
}
if (/^[0-9a-fA-F]{6}$/.test(color)) {
color1 = parseInt(color.substr(0, 2), 16)
color2 = parseInt(color.substr(2, 2), 16)
color3 = parseInt(color.substr(4, 2), 16)
return 'rgb(' + color1 + ',' + color2 + ',' + color3 + ')'
}
}
方法二:
function 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 arr
}