firefox 返回 16 进制 颜色值

Code
<script type="text/javascript">
/*
 *由于firefox在返回一个元素的color的时候往往是返回一个字符串比如rgb(255, 255, 255)
 *而IE往往返回#FFFFFF这种形式,在有时候做颜色判断时很难做比较,于是我便写了这个函数
 *方便从一个含有三个颜色值的字符串转换为一个Hex的颜色值
 
*/
String.prototype.hexColor 
= function(){
    
    
if(this.indexOf("#">= 0return this;//如果是一个hex值则直接返回
    var pattern = new RegExp("2[0-4]\\d|25[0-5]|[01]?\\d\\d?","ig");//这个正则是取 0 ~ 255的数字
    var va = this.match(pattern);
    
if(va.length != 3return "NaN";//取出的数组长度一定得为3
    var result = "#";
    
for(var i = 0; i < 3; i++) {
        
var num = parseInt(va[i]);
        result 
+= num < 16 ? "0" + num.toString(16) : num.toString(16);//如果小于F在前面补0
    }
    
return result;
}
/*****************测试开始***********************/
var a = "rgb(255, 254, 253)";
var    b = "255,254,253";
var    c = "256,254,253";
var    d = "#ff36ff";
start 
= new Date().getTime();
document.write(a.hexColor() 
+ "<br />" + b.hexColor() + "<br />" + c.hexColor() + "<br />" + d.hexColor())
end  
= new Date().getTime();
document.write(
"<br />耗时: " + (end - start)+ "ms"); 
    
/*****************测试结束***********************/
</script>
posted @ 2009-03-31 14:41  cfanseal  阅读(422)  评论(0编辑  收藏  举报