颜色值相互转换---Color

本文介绍了一种使用JavaScript实现的颜色值转换方法,包括从十六进制(Hex)到红绿蓝(RGB)颜色值的转换,反之亦然。通过正则表达式验证输入,并利用字符串操作完成转换。

颜色值相互转换,由hex到rgb或由rgb到hex,注意主要是字符串的操作和正则表达式的应用
var Color = function (){
   //将hex装换成rgb形式
   this.HexToRgb = function (str){
       var r = /^\#?[0-9a-f]{6}$/;
       if (!r.test(str)) return window.alert("输入hex颜色值有误!!!");   
       //test方法检查在字符串中是否存在一个模式,如果存在则返回true,否则返回false
            str = str.replace("#", ""); 
            //替换查找的到的字符串
            var hxs = str.match(/../g); 
            //得到查询数组
            for (var i = 0; i < 3; i++) {
                hxs[i] = parseInt(hxs[i], 16);
            }
       return hxs;
   }

   //将rgb装换成hex
   this.RgbToHex = function (a, b, c) {
      var r = /^\d{1,3}$/;
      if (!r.test(a) || !r.test(b) || !r.test(c)) return window.alert("输入rgb颜色值有误!!!");
          var hexs = [a.toString(16), b.toString(16), c.toString(16)];
          for (var i = 0; i < 3; i++) {
             if (hexs[i] == 1) hexs[i] = "0" + hexs[i];
           }
      return "#" + hexs.join("");
   }
}


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>颜色值相互转换---Color---www.cnblogs.com/kuikui</title> <script type="text/javascript"> var Color = function () { //将hex转换成rgb形式 this.HexToRgb = function (str) { var r = /^\#?[0-9a-f]{6}$/; if (!r.test(str)) return window.alert("输入hex颜色值有误!!!"); //test方法检查在字符串中是否存在一个模式,如果存在则返回true,否则返回false str = str.replace("#", ""); //替换查找的到的字符串 var hxs = str.match(/../g); //得到查询数组 for (var i = 0; i < 3; i++) { hxs[i] = parseInt(hxs[i], 16); } return hxs; } //将rgb装换成hex this.RgbToHex = function (a, b, c) { var r = /^\d{1,3}$/; if (!r.test(a) || !r.test(b) || !r.test(c)) return window.alert("输入rgb颜色值有误!!!"); var hexs = [a.toString(16), b.toString(16), c.toString(16)]; for (var i = 0; i < 3; i++) { if (hexs[i] == 1) hexs[i] = "0" + hexs[i]; } return "#" + hexs.join(""); } } window.onload = function () { var test = new Color(); alert(test.HexToRgb("ff66ff")); alert(test.RgbToHex(100, 255, 100)); } </script> </head> <body> </body> </html>

运行代码

转载于:https://www.cnblogs.com/kuikui/archive/2012/01/31/2333837.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值