正 文

将颜色字符串转化为 #RRGGBB 的 JavaScript 函数


www.7dspace.com  更新日期:2006-1-9 3:46:00  七度空间


在写 JavaScript 时,有时候我们需要的颜色值必须是 #RRGGBB 形式(例如在进行色系转换时),但是我们无法保证颜色的输入值一定是 #RRGGBB 的形式,例如 Red,rgb(255, 0,0),#333 等也是合法的颜色值表示形式,另外还有一些不合法的颜色值输入,例如333333这种没有#开头的RGB形式,或者其他根本不是颜色值的字符串都有可能被输入,如何来把这些都统统地转化为 #RRGGBB 形式呢?这里提供一个 JavaScript 函数,可以很容易的进行这个转化。

代码如下

function parseColor(vValue) {
  var oColorParser = document.createElement("body");
  oColorParser.bgColor = vValue;
  return oColorParser.bgColor;
}

当然不要指望这个函数能够把所有的值都转化为对的,只有 Red 和 333333 这种非 #RRGGBB 形式转化出来才是对的,对于其他的输入方式,不同的浏览器得出来的值是不一样的,例如:

document.writeln(parseColor('red'));
document.writeln(parseColor('rgb(255,0,0)'));
document.writeln(parseColor('#f00'));
document.writeln(parseColor('#ff0000'));
document.writeln(parseColor('ff0000'));
document.writeln(parseColor('f00'));
document.writeln(parseColor('fdafdadfadsfas'));

这个在 Internet Explorer 上的输出结果是:

#ff0000 #ff0000 #0f0000 #ff0000 #ff0000 #0f0000 #fdad0f

但是在 Firefox 上的输出结果却是:

#ff0000 #002500 #000000 #ff0000 #ff0000 #000000 #fddaad

而在 Opera 上的输出结果是:

#ff0000 #ff0000 #ff0000 #ff0000 #ff0000 #ff0000 #fdafda


上一篇:IIS 6 配置备份与迁移
下一篇:单点登录系统的设计与实现方案
作者:andot  来源:CoolCode.CN ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐