js rgb颜色和hex颜色互转

;!function (str) {
    str.HEXtoRGB = function () {
        var col = this.slice(1).split('');
        if (/^[0-9A-Fa-f]{6}$/.test(col.join('')) || /^[0-9A-Fa-f]{3}$/.test(col.join(''))) {
            (col.length === 3) && !function () {
                for (i = -3; i < 0; i++) {
                    col.splice(i, 0, '' + col.slice(i)[0])
                }
            } ();
            return "rgb(" + parseInt(col.slice(0, 2).join(''), 16) + "," + parseInt(col.slice(2, 4).join(''), 16) + "," + parseInt(col.slice(4, 6).join(''), 16) + ")";
        } else { return "rgb(0,0,0)" };
    };
    str.RGBtoHEX = function () {
        let self = this.replace(/\s+/g,""); //去掉空格
        var col = self.toUpperCase();
        col = col.replace(/^RGB\((\d{1,3}?)\,(\d{1,3}?)\,(\d{1,3}?)\)$/, function (core, $1, $2, $3) {
            var a = +$1, b = +$2, c = +$3, cache = "";
            // (a < 256 && b < 256 && c < 256) ? cache = '#' + a.toString(16) + b.toString(16) + c.toString(16) : cache = "#000"; //值为0要转为00
            var aTo16 = a.toString(16) < 10 ? '0' + a.toString(16) : a.toString(16),
            bTo16 = b.toString(16) < 10 ? '0' + b.toString(16) : b.toString(16),
            cTo16 = c.toString(16) < 10 ? '0' + c.toString(16) : c.toString(16);
            (a < 256 && b < 256 && c < 256) ? cache = '#' + aTo16 + bTo16 + cTo16 : cache = "#000";
            return cache;
        })
        return col;
    }
}(String.prototype)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yc99

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值