颜色字符串转换
来源:互联网 发布:java物流管理系统 编辑:程序博客网 时间:2024/06/05 16:52
题目:
将 rgb 颜色字符串转换为十六进制的形式,如 rgb(255, 255, 255) 转为 #ffffff。
- rgb 中每个 , 后面的空格数量不固定
- 十六进制表达式使用六位小写字母
- 如果输入不符合 rgb 格式,返回原始输入
例如:
输入 :’rgb(255, 255, 255)’
输出:#ffffff
答案:
function rgb2hex(sRGB) { if(/^(rgb\(\s*((2[0-4]\d|25[0-5]|[01]?\d\d?),\s*){2}\s*(2[0-4]\d|25[0-5]|[01]?\d\d?)\s*\))$/.test(sRGB)){ var arr = sRGB.match(/\d+/g); var str = "#"; for(var i=0;i<arr.length;i++) { if((+arr[i]).toString(16).length == 1) { str += '0' + (+arr[i]).toString(16); } else { str += (+arr[i]).toString(16); } } return str; } else { return sRGB; }}
或者
function rgb2hex(sRGB) { sRGB = sRGB.replace(/\s+/g,''); if(/^rgb\((2[0-4]\d|25[0-5]|[01]?\d\d?),(2[0-4]\d|25[0-5]|[01]?\d\d?),(2[0-4]\d|25[0-5]|[01]?\d\d?)\)$/.test(sRGB)){ var str = "#", arr = [RegExp.$1,RegExp.$2,RegExp.$3]; arr.map(function(obj){ if((+obj).toString(16).length == 1) { str += '0' + (+obj).toString(16); } else{ str += (+obj).toString(16); } }); return str; } else { return sRGB; }}
收获:
- 开始的时候/[a-z][A-Z]/.test(“aA”)以为是false,其实只要字符串中含有匹配的文本就行了。
- (2[0-4]\d|25[0-5]|[01]?\d\d?,){2}并不能匹配255,255。((2[0-4]\d|25[0-5]|[01]?\d\d?),){2}才行,你应该讲“,”当做正常的元素看待。
阅读全文
0 0
- 颜色字符串转换
- 颜色字符串转换
- 字符串与颜色相互转换
- 将字符串转换成颜色值
- RGB颜色转换_16进制颜色(html颜色值)字符串转为UIColor
- c#把字符串类型的颜色值,转换成color
- 十六进制颜色字符串转换成Color在Silverlight中的实现
- flex颜色值和字符串之间的转换
- 颜色RGB名称字符串转换成资源id
- Android中关于字符串与颜色的转换问题
- WPF中颜色的转换:由字符串转化为Brushes
- 颜色转换
- 颜色转换
- 颜色转换
- 颜色转换
- 颜色转换
- 颜色转换
- 颜色转换
- 第四周 【项目 6
- Tesseract ViewerDebugging 记录心得
- 7.笔记go语言——if,switch,defer
- 在linux中将nginx配置成service
- 实现一个打点计时器
- 颜色字符串转换
- 单节点安装OpenStack 之 keystone 安装和glance 安装
- 小红书2018编程_输出字符串中最大的数
- codeforces 335 C Sorting Railway Cars
- 链表中环的入口结点
- 8.笔记go语言——复杂类型struct,slice,map
- Source Coding and Fountain Codes meet Multipath TCP (MPTCP)
- SDUT 2124 串结构练习——字符串连接
- 9.笔记go语言——方法和接口