JS:颜色的格式转换(rgb、十六进制)

您所在的位置:网站首页 rgb值换算 JS:颜色的格式转换(rgb、十六进制)

JS:颜色的格式转换(rgb、十六进制)

2023-10-24 01:38| 来源: 网络整理| 查看: 265

简介

偶尔需要转换颜色格式,然后使用。如rgb和十六进制之间的互相转换

具体实现 使用: import { TzColorExchangeStyle } from colorExchange.js console.log(TzColorExchangeStyle.formatColorFun('#ffffff')) // colorExchange.js class TzColorExchangeStyle { static get reg() { return /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/ } static get regTwo() { return /^0x([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/ } // rgb转换为 #?????? 的16进制,或补全#fff为#ffffff static rgbToHexadecimalNormal(value) { // 如果是rgb颜色表示 if (/^(rgb|RGB)/.test(value)) { let aColor = value.replace(/(?:\(|\)|rgb|RGB)*/g, '').split(',') let strHex = '#' for (let i = 0; i hex += hex } strHex += hex } if (strHex.length !== 7) { strHex = value } return strHex } else if (this.reg.test(value)) { let aNum = value.replace(/#/, '').split('') if (aNum.length === 6) { return value } else if (aNum.length === 3) { let numHex = '#' for (let i = 0; i let val = this.rgbToHexadecimalNormal(value) if (val.indexOf('#') > -1 && val.lastIndexOf('#') === val.indexOf('#')) { val = val.replace('#', '0x') } return val } // 两种16进制颜色之一转为RGB格式 static hexadecimalToRgb(value) { let sColor = value.toLowerCase() if (sColor && this.reg.test(sColor)) { if (sColor.length === 4) { let sColorNew = '#' for (let i = 1; i sColorChange.push(parseInt('0x' + sColor.slice(i, i + 2))) } return 'rgb(' + sColorChange.join(',') + ')' } else if (sColor && this.regTwo.test(sColor)) { if (sColor.length === 4) { let sColorNew = '0x' for (let i = 1; i sColorChange.push(parseInt('0x' + sColor.slice(i, i + 2))) } return 'rgb(' + sColorChange.join(',') + ')' } return sColor } static formatColorFun(value) { let obj = { hexadecimalNormal: '', hexadecimalOther: '', rgb: this.hexadecimalToRgb(value) } obj.hexadecimalNormal = this.rgbToHexadecimalNormal(obj.rgb) obj.hexadecimalOther = this.rgbToHexadecimalOther(obj.rgb) return obj } } export { TzColorExchangeStyle } 最后

觉得有用的朋友请用你的金手指点一下赞,或者评论留言一起探讨技术!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3