JavaScript隨機生成顏色以及十六進制顏色 與RGB顏色值的相互轉換

JavaScript隨機生成顏色以及十六進制顏色

與RGB顏色值的相互轉換

1.隨機生成的十六進制顏色

/**
 * 隨機生成顏色
 * @return 隨機生成的十六進制顏色
*/

function randomColor(){
  var colorStr=Math.floor(Math.random()*0xFFFFFF).toString(16).toUpperCase();
  return"#"+"000000".substring(0,6-colorStr)+colorStr;
}

2.十六進制顏色轉換爲RGB顏色

/**
 * 十六進制顏色轉換爲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;
  }
}

3.RGB顏色轉換爲十六進制顏色

/**
 * 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;
  }
}

轉載地址:http://www.thinksaas.cn/group/topic/268437/



發佈了87 篇原創文章 · 獲贊 376 · 訪問量 50萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章