js 实现rgb和十六进制的代码转化

2023-11-09

十六进制转化为RGB

function set16ToRgb(str){
    // 十六进制颜色代码的正则表达式
    var reg = /^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/
    // test() 检测str是否匹配十六进制颜色的模式
    if(!reg.test(str)){return;}
    // 把字符串中的英文字母都变为小写字母,并将#替换为空(去掉#)
    let newStr = (str.toLowerCase()).replace(/\#/g,'')
    let len = newStr.length;
    if(len == 3){
        let t = ''
        for(var i = 0; i < len; i++){
            // slice(start, end) 方法可提取字符串从start(包含) 到 end(不包含)的内容,并以新的字符串返回被提取的部分
            // concat() 方法用于连接两个或多个字符串
            // 将16进制的颜色代码为3位的补齐为6位
            t += newStr.slice(i,i+1).concat(newStr.slice(i,i+1))
        }
        newStr = t
    }
    let arr = []; 
    //将字符串分隔,两个两个的分隔
    for(var i =0; i < 6; i = i + 2){
        let s = newStr.slice(i, i + 2)
        // parseInt() 函数可解析一个字符串,并返回一个整数
        // 如果 string 以 "0x" 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。
        arr.push(parseInt("0x" + s))
    }
    // 字符串拼接为rgb格式的颜色代码
    return 'rgb(' + arr.join(",")  + ')';
}
//调用方法
set16ToRgb("#2be");

RGB转化为十六进制

function setRgbTo16(str){
    let reg = /^(rgb|RGB)/;
    if(!reg.test(str)){return;}
    // 将str中的数字提取出来放进数组中
    var arr = str.slice(4, str.length-1).split(",");
    let c = '#';
    for(var i = 0; i < arr.length; i++){
        // Number() 函数把对象的值转换为数字
        // toString(16) 将数字转换为十六进制的字符表示
        var t = Number(arr[i]).toString(16);
        //如果小于16,需要补0操作,否则只有5位数
        if(Number(arr[i]) < 16){
            t = '0' + t;
        }
        c += t;
    }
    return c;
}
setRgbTo16("rgb(13,0,233)");

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

js 实现rgb和十六进制的代码转化 的相关文章

随机推荐

  • 最细致的LayUI【前端框架】从入门到实战-快速搭建后台管理系统

    最细致的LayUI 前端框架 从入门到实战 快速搭建后台管理系统 LayUI学习思维导图 和 Bootstrap 有些相似 但该框架有个极大的好处就是定义了很多前后端交互的样式接口 如分页表格 只需在前端配置好接口 后端则按照定义好的接口规
  • 【干货】Android系统定制基础篇:第三部分(Android静默安装、Android支持usb打印机)

    1 Android静默安装 一些产品要求APP在升级时能够实现静默安装 而无需弹出安装界面让用户确认 这里提出两种实现方案 方案一 APP调用 pm 命令实现静默安装 此方案无须修改Android源码 但需要root权限 方案二 修改And
  • ESP32之 ESP-IDF + Clion 开发环境搭建(一)—— Windows版

    本文章 来自原创专栏 ESP32教学专栏 基于ESP IDF 讲解如何使用 ESP IDF 构建 ESP32 程序 发布文章并会持续为已发布文章添加新内容 每篇文章都经过了精打细磨 通过下方对话框进入专栏目录页 CSDN 请求进入目录 O
  • 基于matlab的图解粒度参数计算,基于MATLAB的图解粒度参数计算

    陶瓷材料 第26卷 第3期 2006年8月 热 带 地 理 TROPICALGEOGRAPHY Vol126 No13 Aug 2006 基于MATLAB的图解粒度参数计算 王 为 吴 正 华南师范大学地理系 广州510631 摘 要 粒度
  • Android res文件夹下资源定义及使用

    1 颜色 RGB ARGB RRGGBB AARRGGBB 颜色资源应该位于
  • Android JNI实现锅炉压力显示系统详解

    前些天发现了一个蛮有意思的人工智能学习网站 8个字形容一下 通俗易懂 风趣幽默 感觉非常有意思 忍不住分享一下给大家 点击跳转到教程 第一步创建GuoLu c文件 Created by DELL on 2023 8 13 include
  • TCP协议通讯流程——三次握手四次挥手

    TCP协议通讯流程 如图 1 服务器的初始化 服务器端 调用socket 创建文件描述符 调用bind 将当前文件描述符与IP地址跟端口号绑定在一起 如果该端口号已经被其它进程占用了 就会bind失败 调用listen 声明当前文件描述符为
  • 【vue】Echarts3D地图下钻

    需求分析 地图下钻是一个非常常见的功能需求 本篇文章会细致讲解如何在Vue3中使用Eharts gl渲染出3D地图 并且实现地图下钻和返回上级地图的完整功能 github项目demo地址 点击这里 注意此项目为vue3版本 vue2版本在仓
  • Linux如何启动网卡?

    在新安装的Linux系统 我们配置的网卡可能是没有激活的 此时ping不通外网 下载包的时候也会报错 下面我们看看如何启动网卡 1 首先获取root权限 输入su 再输入密码 密码是不显示的 注意小键盘有没有锁住 获取root权限后 输入提
  • Python Turtle 画图

    https www jb51 net article 130181 htm Turtle库是Python语言中一个很流行的绘制图像的函数库 想象一个小乌龟 在一个横轴为x 纵轴为y的坐标系原点 0 0 位置开始 它根据一组函数指令的控制 在
  • PNG编解码算法详解

    1 PNG介绍 PNG是便携式网络图型 Portable Network Graphics 的缩写 由于PNG带有透明通道 无损压缩 可提升设计元素的呈现效果 因此设计上对PNG情有独钟 广泛的运用在设计 游戏 网页 app开发里 实际使用
  • MFC 最详细入门教程

    From https blog csdn net wang18323834864 article details 78621633 Visual Studio 2019 https visualstudio microsoft com zh
  • AttributeError: module 'urllib' has no attribute 'urlopen'

    使用py3的urllib urlopen方法时报错 PS C Users jiangcheng Documents Python Scripts gt python Python 3 6 5 Anaconda Inc default Mar
  • IDEA常用插件之代码扫描SonarLint

    文章目录 SonarLint 查找隐藏的bug 下载安装插件 扫描代码 查看结果 SonarLint 查找隐藏的bug 下载安装插件 扫描代码 项目右键 gt Analyze gt Analyze with SonarLint 查看结果 扫
  • Colmap学习三:后端Initialization部分(基础矩阵F、本质矩阵E和单应矩阵H)

    算矩阵的基础知识 解析本质 基础 单应矩阵的自由度 1 寻找初始像对 1 1手动选择ID 1 2自动筛选 prior focal length存在情况下 开始筛选 匹配点数由小到大排序 第二张候选影像的匹配数目大于init min num
  • 什么是JSP

    JSP 与 PHP ASP ASP NET 类似 是一种运行在web端的语言 JSP 全称Java Server Pages 是由 Sun Microsystems 公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求 而动态
  • 数据库 索引

    多数数据库 使用 B 树 Balance Tree 的结构来保存索引 B 树 最上层节点 根节点 最下层节点 叶子节点 两者之间的节点 中间节点 B 树 显著特征 从根节点 到各个叶子节点的距离都是相等的 如此 检索任何值时 都经过相同数目
  • 详解map、set、multimap、multiset的使用

    作者 阿润菜菜 专栏 C 目录 前言 set multiset的使用 1 set 2 multiset 3 什么时候应该使用multiset而不是set map multimap的使用 1 map 2 multimap 3 什么时候应该使用
  • 手把手教你创建的私人git仓库(Linux CentOS7 )

    手把手教你创建的私人git仓库 Linux CentOS7 安装git yes yum install git core 配置用户名和邮箱 此处以 lrq lrq email com 为例 git config global user na
  • js 实现rgb和十六进制的代码转化

    十六进制转化为RGB function set16ToRgb str 十六进制颜色代码的正则表达式 var reg 0 9A Fa f 3 0 9A Fa f 6 test 检测str是否匹配十六进制颜色的模式 if reg test st