新手不太会正则,写了个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);
}
网友评论