学习之路之---把16进制的#的颜色转换成rgb

方法一:

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
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值