题目:
编写一个将十六进制值转换成颜色的函数,以蓝色为例,#0000FF应被表示成rgb(0,0,255)的形式。然后将函数命名为getRGB(),并用以下代码进行测试。提示:可以将字符串视为数组,这个数组的元素为字符。
示例:
> var a = getRGB('#00FF00');
> a;
rgb(0, 255, 0)
编程:
var getRGB = function (hex) {
var rgb = [0, 0, 0];
if (/#(..)(..)(..)/g.test(hex)) {
rgb = [parseInt(RegExp.$1, 16), parseInt(RegExp.$2, 16), parseInt(RegExp.$3, 16)];
};
return "rgb(" + rgb.join(",") + ")";
}
知识点:
RegExp
是javascript中的一个内置对象,为正则表达式。RegExp.$1
是RegExp的一个属性,指的是与正则表达式匹配的第一个 子匹配(以括号为标志)字符串,以此类推,RegExp.$2
,RegExp.$3
,..RegExp.$99
总共可以有99个匹配。parseInt(string, radix)
radix
为可选参数,表示要解析的数字的基数。该值介于 2 ~ 36 之间。
如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。
如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。