js 实现颜色值格式转换 rgb和十六进制的转换

2023-11-09

本文章是以prototype原型的方式,给string字符串类型添加方法,用于实现颜色值格式的转换。

如果你不用原型方法,那么你只要借鉴实现方法就好了。

 

RGB转换为16进制

String.prototype.colorHex = function () {
  // RGB颜色值的正则
  var reg = /^(rgb|RGB)/;
  var color = this;
  if (reg.test(color)) {
    var strHex = "#";
    // 把RGB的3个数值变成数组
    var colorArr = color.replace(/(?:\(|\)|rgb|RGB)*/g, "").split(",");
    // 转成16进制
    for (var i = 0; i < colorArr.length; i++) {
      var hex = Number(colorArr[i]).toString(16);
      if (hex === "0") {
        hex += hex;
      }
      strHex += hex;
    }
    return strHex;
  } else {
    return String(color);
  }
};

使用方法:

"rgb(255,255,255)".colorHex();  // #ffffff

 

16进制转换为RGB

String.prototype.colorRgb = function () {
  // 16进制颜色值的正则
  var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
  // 把颜色值变成小写
  var color = this.toLowerCase();
  if (reg.test(color)) {
    // 如果只有三位的值,需变成六位,如:#fff => #ffffff
    if (color.length === 4) {
      var colorNew = "#";
      for (var i = 1; i < 4; i += 1) {
        colorNew += color.slice(i, i + 1).concat(color.slice(i, i + 1));
      }
      color = colorNew;
    }
    // 处理六位的颜色值,转为RGB
    var colorChange = [];
    for (var i = 1; i < 7; i += 2) {
      colorChange.push(parseInt("0x" + color.slice(i, i + 2)));
    }
    return "RGB(" + colorChange.join(",") + ")";
  } else {
    return color;
  }
};

使用方法:

"#fff".colorRgb();  // rgb(255,255,255)
"#ffffff".colorRgb();  // rgb(255,255,255)

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js 实现颜色值格式转换 rgb和十六进制的转换 的相关文章

随机推荐

  • JAVA使用servlet接收json格式的方法

    JAVA中使用HttpServletRequest接收前台传入的参数 其中json的格式是 penalty 0 5 deductPointsItem 7 photoUrl image 26quality 80 26size b9999 10
  • 链表的实现:无头单向非循环链表的实现

    笔者在上篇博客书写了一个名为 链式存储之 链表的引出及其简介原文链接为 https blog csdn net weixin 64308540 article details 128374876 spm 1001 2014 3001 550
  • 【Blender】摄像机-01常用操作

    新建相机如何快速将视角设为相机视角 A 新建相机后 ctrl alt 0 即把当前视角作为摄像机视角 例如正视图 先按1 然后ctrl alt 0 摄像机常用操作 1 shift a新建摄像机 调整合适焦距 当然也可以不调整 2 点击0键
  • 5. springBoot-web开发——模板引擎

    1 thymeleaf Thymelaef 是通过他特定语法对 html 的标记做渲染的一个视图层技术 1 1 引入thymeleaf 1 引入thymeleaf的依赖
  • .net 中context、DbContext是什么?

    可以将上下文看作相关 事物 的包装 例如 HttpContext DbContext ObjectContext HttpContext包含任何HTTP相关操作的信息 DbContext包含用于数据库通信的方法和属性 ObjectConte
  • 对数字添加前导0达到固定长度

    近期在处理一个时间展示 要求月日时分秒固定展示2位数字 毫秒固定展示3位数字 传统的作为是根据小于10 小于100等在前面添加特定个数的0 昨晚突然想到 字符串的slice方法可以指定一个负数值来取字符串的后面n个字符 这样在原始数字前面添
  • Win10下AutoCAD2014 +VS2010 + Object2014 安装与配置环境

    Win10下AutoCAD2014 VS2010 Object2014 安装与配置环境 安装前的准备 1 AutoCAD2014安装包 https pan baidu com s 1nK zeBv7tIcipOKcVroo3g 提取码 p7
  • IDEA自动设置作者信息

    一 背景和痛点 以前用Eclipse 忘记设置类的作者信息 是可以使用 之后回车自动出现作者信息的 现在用IDEA不能通过这种方式补全 非常不方便 注意 网上很多教程 说的是新建java类的时候出现作者信息 跟提到的问题痛点是不同的 作者信
  • 实验1:顺序表的基本操作(包括基本代码)

    实验1 顺序表的基本操作 实验目的 1 掌握顺序表的存储结构 2 实现顺序表的基本操作 实验内容 建立一个顺序表L1 11 2 35 41 65 2 1 查找元素5是否存在 2 删除位序为3的元素 3 输出所有元素 4 输出顺序表的长度 5
  • [专利与论文-10]:跟小朋友聊专利

  • C语言经典100例(5)——输入三个整数x,y,z,请把这三个数由小到大输出。

    题目分析 很简单 依次比较三个数的大小进行排序 最后输出即可 代码实现 include
  • VL6180X传感器驱动

    vl6180x i2c c I2C通信 获取VL6180x地址 可以知道7位地址为0x29 写 0x52 读 0x53 写入数据 通过I2C总线向某一寄存器写入一个字节数据 成功 0 失败 1 uint8 VL6180X WriteByte
  • 配置静态路由小实验

    实验拓扑 实验要求 1 使用 eNSP 搭建如下拓扑图 2 基本配置 接口 IP 地址 设备主机名等 3 配置静态路由 使 PC1 PC2 和 PC3 可以互通 4 配置浮动静态路由 使 PC3 通过 AR3 的 G0 0 1 接口访问其他
  • surfaceDestroyed什么时候被调用

    今天看别人的代码 突然有个疑问 surfaceDestroyed这个函数什么时候被调用呢 上网搜了一番 基本都说是surface被销毁的时候 才会调用surfaceDestroyed 问题又来了surface什么时候被销毁呢 大家都知道su
  • python基础案例练习一

    员工管理系统练习 1 显示系统菜单 2 获得用户输入的菜单 3 根据用户的输入判断执行操作 存储员工信息 employee def show menu print 20 员工管理系统菜单 20 print 1 添加员工信息 print 2
  • 考试座位号 C语言

    每个 PAT 考生在参加考试时都会被分配两个座位号 一个是试机座位 一个是考试座位 正常情况下 考生在入场时先得到试机座位号码 入座进入试机状态后 系统会显示该考生的考试座位号码 考试时考生需要换到考试座位就座 但有些考生迟到了 试机已经结
  • 恶意数据包(pcap)下载网站合集

    收集一些恶意数据包下载网站 方便研究学习 https wiki wireshark org SampleCaptures https www netresec com page PcapFiles https www malware tra
  • xml中使用include引入布局

    为了复用布局 使用include方式引用 activity top bar xml 代码如下 需要注意的是 父容器LinearLayout中layout height为wrap content 而不是match parent 以免引入到其他
  • 如何动态创建二维数组[cpp]

    我们常见的用new来 动态创建一维数组 int m std cin gt gt m int 数组名 new int m 动态创建二维数组 方法一 int n 地图的长宽 cin gt gt n int map new int n 创建一个指
  • js 实现颜色值格式转换 rgb和十六进制的转换

    本文章是以prototype原型的方式 给string字符串类型添加方法 用于实现颜色值格式的转换 如果你不用原型方法 那么你只要借鉴实现方法就好了 RGB转换为16进制 String prototype colorHex function