RGB进制转换

作者: 公子七 | 来源:发表于2017-07-27 11:58 被阅读15次

新手不太会正则,写了个RGB转换方法。
嗯,记录一下,后面完善。

function toRGB (str) {
    if (str.indexOf('#') != 0 || str.length != 7) return str;
    var arr = [];
    var res = '';
    for (var i = 1; i <= str.length - 2; i += 2) {
        arr.push(str.substr(i, 2));
    }
    arr.forEach(function (val) {
        res += parseInt(val, 16).toString() + ',';
    })
    var len = res.length;
    res = 'rgb('.concat(res.substr(0, res.length - 1)).concat(')');
    return res;
}

console.log(toRGB('#0000FF'));
console.log(toRGB('va#lid'));
function rgb2hex (sRGB) {
    var reg = /rgb\((\d+),\s*(\d+),\s*(\d+)\)/;
    if (!sRGB.match(reg)) return sRGB;
    var str;
    var res = '';
    str = sRGB.slice(4, sRGB.length - 1).split(',');
    str.forEach(function(val) {
        val = parseInt(val.replace(/(^\s*)|(\s*$)/g, ''), 10);
        if (val <= 255 && val >= 0) {
            res += (val < 16 ? '0' + val.toString(16) : val.toString(16));
        } else {
            return sRGB;
        }
    })
    return '#'.concat(res);
}

相关文章

网友评论

    本文标题:RGB进制转换

    本文链接:https://www.haomeiwen.com/subject/ftlzkxtx.html