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

来源:岁月联盟 编辑:exp 时间:2012-03-12

/**

 * 随机生成颜色

 * @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;

  }

}

 

摘自  ゛白昼怎懂夜的黑ヽ