题解 | #颜色字符串转换#

颜色字符串转换

https://www.nowcoder.com/practice/80b08802a833419f9c4ccc6e042c1cca

思路:正则表达式。首先使用正则表达式匹配rgb(a,b,c)这种形式,然后使用match方法获取匹配内容,接着使用toString(16)方法将表示r、g、b的整数各自转换为两位的16进制字符串形式,最后使用toLowerCase方法将其全部转换为小写形式。

function rgb2hex(sRGB) 
{
	  // 其中\(表示匹配左括号  \s*表示匹配空白字符任意次
      const match = sRGB.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
      if (match) 
      {
        const [, r, g, b] = match; // 解构匹配结果
        const hexColor = `#${twodigit(r)}${twodigit(g)}${twodigit(b)}`;
        return hexColor.toLowerCase();
      } else 
      {
        return sRGB;
      }
    function twodigit(n)
    {
        //rgb(0,0,0)
        let s=Number(n).toString(16)
        return s.length==2?s:'0'+s
    }
}

总结:string.match(regexp)方法用于在字符串中匹配与指定正则表达式相匹配的内容并返回一个数组,数组的第一项是完整的匹配内容,后面几项是捕获组的匹配内容,捕获组即以括号括起来的部分, ["rgb(255, 255, 255)", "255", "255", "255"]即为上述结果,如果未找到匹配项,则返回null。str.toLowerCase()方法将字符串str全部转换为小写形式。

#颜色字符串转换#
前端js面试 文章被收录于专栏

前端js面试,帮助你更好的理解js。

全部评论

相关推荐

07-14 13:47
门头沟学院 Java
Lynn012:你评估好自己的位置了吗《顶尖应届》
投递小米集团等公司7个岗位
点赞 评论 收藏
分享
小鹏、大疆、米哈游、MinMax小鹏上午投的下午就约面,进度未免也太快了
蛇年行大运fff:哥们 盗贴有意思吗,我发xhs上的给你搬过来了😅😅😅
点赞 评论 收藏
分享
06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
07-01 13:37
门头沟学院 Java
steelhead:不是你的问题,这是社会的问题。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务