颜色字符串转换(正则)
生活随笔
收集整理的这篇文章主要介绍了
颜色字符串转换(正则)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
题目描述
将 rgb 颜色字符串转换为十六进制的形式,如 rgb(255, 255, 255) 转为 #ffffff
1. rgb 中每个 , 后面的空格数量不固定
2. 十六进制表达式使用六位小写字母
3. 如果输入不符合 rgb 格式,返回原始输入
代码
1 function rgb2hex(sRGB) { 2 var rgb = /rgb\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)\)/; 3 var rgbArr = sRGB.match(rgb);//rgbArr = {rgb(255, 255, 255),255,255,255} 4 /*var rgb = /rgb\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)\)/g 5 //rgb = {rgb(255, 255, 255)}*/ 6 var str = "#"; //颜色值 7 if(!rgbArr){ //不符合正则匹配 8 return sRGB; 9 } 10 else { 11 for(var i = 1 ; i<4; i++){ 12 var rgbIndex = parseInt(rgbArr[i]); 13 if(rgbIndex<16 && rgbIndex>=0){ 14 str += ('0'+rgbIndex.toString(16));//保留两位数 15 } 16 else if(rgbIndex>=16 && rgbIndex<=255){ 17 str += rgbIndex.toString(16); 18 } 19 else { 20 return sRGB; //不是颜色值字符 21 } 22 } 23 return str; 24 } 25 }
来源:牛客网
转载于:https://www.cnblogs.com/daheiylx/p/9010821.html
总结
以上是生活随笔为你收集整理的颜色字符串转换(正则)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Centos下使用Docker部署asp
- 下一篇: ECharts xAxis.type='