zoukankan      html  css  js  c++  java
  • 颜色字符串转换(正则)

    题目描述

    将 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 }

    来源:牛客网

  • 相关阅读:
    ListActivity优点
    博客随笔
    第三周作业附加题之课外书读后感
    第3周作业。
    第三周作业
    读《弟弟》,笔记
    使用git将文件上传到Coding
    第二周作业
    第一周作业
    第零次作业
  • 原文地址:https://www.cnblogs.com/daheiylx/p/9010821.html
Copyright © 2011-2022 走看看