題目:
編寫一個将十六進制值轉換成顔色的函數,以藍色為例,#0000FF應被表示成rgb(0,0,255)的形式。然後将函數命名為getRGB(),并用以下代碼進行測試。提示:可以将字元串視為數組,這個數組的元素為字元。
示例:
> var a = getRGB('#00FF00');
> a;
rgb(, , )
程式設計:
var getRGB = function (hex) {
var rgb = [, , ];
if (/#(..)(..)(..)/g.test(hex)) {
rgb = [parseInt(RegExp.$, ), parseInt(RegExp.$, ), parseInt(RegExp.$, )];
};
return "rgb(" + rgb.join(",") + ")";
}
知識點:
-
是javascript中的一個内置對象,為正規表達式。RegExp
是RegExp的一個屬性,指的是與正規表達式比對的第一個 子比對(以括号為标志)字元串,以此類推,RegExp.$1
,RegExp.$2
,..RegExp.$3
總共可以有99個比對。RegExp.$99
- parseInt(string, radix)
radix
為可選參數,表示要解析的數字的基數。該值介于 2 ~ 36 之間。
如果省略該參數或其值為 0,則數字将以 10 為基礎來解析。如果它以 “0x” 或 “0X” 開頭,将以 16 為基數。
如果該參數小于 2 或者大于 36,則 parseInt() 将傳回 NaN。