随机生成颜色以及十六进制颜色与RGB颜色值的相互转换

span { color: rgba(0, 128, 0, 1) }

/**

 * 随机生成颜色

 * @return 随机生成的十六进制颜色

 */

function randomColor(){

  var colorStr=Math.floor(Math.random()*0xFFFFFF).toString(16).toUpperCase();

  return “#”+”000000”.substring(0,6-colorStr)+colorStr;

}

 

/**

 * 十六进制颜色转换为RGB颜色

 * @param color 要转换的十六进制颜色

 * @return RGB颜色

function colorHexToRGB(color){

  color=color.toUpperCase();

  var regexpHex=/^#[0-9a-fA-F]{3,6}$/;//Hex

  if(regexpHex.test(color)){

    var hexArray=new Array();

    var count=1;

    for(var i=1;i<=3;i++){

      if(color.length-2*i>3-i){

        hexArray.push(Number(“0x”+color.substring(count,count+2)));

        count+=2;

      }else{

        hexArray.push(Number(“0x”+color.charAt(count)+color.charAt(count)));

        count+=1;

      }

    }

    return “RGB(“+hexArray.join(“,”)+”)”;

  }else{

    return color;

  }

}

 

/**

 * RGB颜色转换为十六进制颜色

 * @param color 要转换的RGB颜色

 * @return 十六进制颜色

 */

function colorRGBToHex(color){

  var regexpRGB=/^(rgb|RGB)\([0-9]{1,3},\s?[0-9]{1,3},\s?[0-9]{1,3}\)$/;//RGB

  if(regexpRGB.test(color)){

    color=color.replace(/(\(|\)|rgb|RGB)*/g,””).split(“,”);

    var colorHex=”#”;

    for(var i=0;i<color.length;i++){

      var hex=Number(color[i]).toString(16);

      if(hex.length==1) hex=”0″+hex;

      colorHex+=hex;

    }

    return colorHex;

  }else{

    return color;

  }

}

版权声明:本文为zhangyibin8111原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/zhangyibin8111/archive/2012/03/11/2390415.html