首页 > 试题广场 >

颜色字符串转换

[编程题]颜色字符串转换
  • 热度指数:32062 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
将 rgb 颜色字符串转换为十六进制的形式,如 rgb(255, 255, 255) 转为 #ffffff
1. rgb 中每个 , 后面的空格数量不固定
2. 十六进制表达式使用六位小写字母
3. 如果输入不符合 rgb 格式,返回原始输入
示例1

输入

'rgb(255, 255, 255)'

输出

#ffffff
头像 牛客白小飞
发表于 2021-05-30 21:17:37
定义一个新的rgb函数,然后用eval执行字符串 function rgb2hex(sRGB) { try{ return eval(sRGB) } catch(err){ return sRGB } } function rgb(r, 展开全文
头像 牛客384148146号
发表于 2021-05-19 10:30:03
function rgb2hex(sRGB) { // 去除 sRGB 的空格 const newSRGB = sRGB.replace(/\s+/g,""); // 定义 rbg 的正则表达式 const exp = /rgb\((0|1\d{0,2}|2[0-5] 展开全文
头像 是明啊
发表于 2021-07-28 16:20:49
挑战优雅写法 function rgb2hex(sRGB) { if (!/^rgb\((\d{1,3},\s*){2}\d{1,3}\)$/.test(sRGB)) return sRGB; let color = '#'; sRGB.replace(/\d+/g, n 展开全文
头像 牛客HT猫L
发表于 2021-08-27 11:14:46
function rgb2hex(sRGB) { // ^rgb 表示匹配任何开头为 rgb 的字符串 // \d+查找数字 +号表查找所有数字 // \s 查找空白字符 return sRGB.replace(/^rgb\((\d+)\s*,\s*(\d+)\s*,\s*(\d+ 展开全文
头像 轻飘飘过wind
发表于 2022-09-07 14:56:42
简洁、易读 1. 先判断是否匹配格式 2. parseInt('255    ', 10) 是等于255的,空格不用处理 3. 注意转化16进制字符需要补全2位 function rgb2hex(sRGB) {   & 展开全文
头像 牛客4124552号
发表于 2021-10-11 22:33:04
function rgb2hex(sRGB) { // 匹配是否符合颜色格式 let erx = /rgb\((\d{0,3},\s*){2}\d{0,3}\)/ if(!erx.test(sRGB)) { return sRGB } // 找出xxx,xxx,xxx 展开全文
头像 牛客831790543号
发表于 2022-08-10 15:25:11
function rgb2hex(sRGB) {   const reg = /^rgb\((\s*\d{1,3},?){3}\)$/;   if (!reg.test(sRGB)) {      return sRGB;   } &nbs 展开全文
头像 雾里看花花里看雾
发表于 2023-06-28 16:54:03
思路:正则表达式。首先使用正则表达式匹配rgb(a,b,c)这种形式,然后使用match方法获取匹配内容,接着使用toString(16)方法将表示r、g、b的整数各自转换为两位的16进制字符串形式,最后使用toLowerCase方法将其全部转换为小写形式。 function rgb2hex(sRG 展开全文
头像 意大利的平底锅
发表于 2022-10-06 18:33:15
function rgb2hex(sRGB) {     let tr=sRGB.split('(')[1] ||''     let tl=tr.split(')')[ 展开全文
头像 在看面经的小黄鸭很怕黑
发表于 2022-11-25 17:45:53
replace+$1 2 3大法function rgb2hex(sRGB) { return sRGB.replace(/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/, ($0,$1,$2,$3)=>{ return `# 展开全文

问题信息

难度:
145条回答 13959浏览

热门推荐

通过挑战的用户

查看代码