颜色值相互转换,由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>