js 正则判断颜色值,HEX转RGB,HSL转RGB | js的cmyk颜色转成rgb颜色

js 正则判断颜色值,HEX转RGB,HSL转RGB | js的cmyk颜色转成rgb颜色

颜色值判断

/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test('#009a61')/^rgb/.test('rgb(0, 154, 97)')/^hsl/.test('hsl(0, 0%, 20%)')

HEX颜色值转换为RGB

// Colorsfunction hexToRgb(hexValue) {  const rgx = /^#?([a-fd])([a-fd])([a-fd])$/i;  const hex = hexValue.replace(rgx, (m, r, g, b) => r + r + g + g + b + b );  const rgb = /^#?([a-fd]{2})([a-fd]{2})([a-fd]{2})$/i.exec(hex);  const r = parseInt(rgb[1], 16);  const g = parseInt(rgb[2], 16);  const b = parseInt(rgb[3], 16);  return `rgb(${r},${g},${b})`;}

HSL颜色值转换为RGB

HSL 为 色相,饱和度,亮度。

function hslToRgb(hslValue) {  const hsl = /hsl((d+),s*([d.]+)%,s*([d.]+)%)/g.exec(hslValue);  const h = parseInt(hsl[1]) / 360;  const s = parseInt(hsl[2]) / 100;  const l = parseInt(hsl[3]) / 100;  function hue2rgb(p, q, t) {    if (t < 0) t += 1;    if (t > 1) t -= 1;    if (t < 1/6) return p + (q - p) * 6 * t;    if (t < 1/2) return q;    if (t < 2/3) return p + (q - p) * (2/3 - t) * 6;    return p;  }  let r, g, b;  if (s == 0) {    r = g = b = l;  } else {    const q = l < 0.5 ? l * (1 + s) : l + s - l * s;    const p = 2 * l - q;    r = hue2rgb(p, q, h + 1/3);    g = hue2rgb(p, q, h);    b = hue2rgb(p, q, h - 1/3);  }  return `rgb(${r * 255},${g * 255},${b * 255})`;}

代码来源:https://github.com/juliangarn...

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部