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/