天天看點

編寫一個将十六進制值轉換成顔色的函數

題目:

編寫一個将十六進制值轉換成顔色的函數,以藍色為例,#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(",") + ")";
}
           

知識點:

  1. RegExp

    是javascript中的一個内置對象,為正規表達式。

    RegExp.$1

    是RegExp的一個屬性,指的是與正規表達式比對的第一個 子比對(以括号為标志)字元串,以此類推,

    RegExp.$2

    RegExp.$3

    ,..

    RegExp.$99

    總共可以有99個比對。
  2. parseInt(string, radix)

    radix

    為可選參數,表示要解析的數字的基數。該值介于 2 ~ 36 之間。

    如果省略該參數或其值為 0,則數字将以 10 為基礎來解析。如果它以 “0x” 或 “0X” 開頭,将以 16 為基數。

    如果該參數小于 2 或者大于 36,則 parseInt() 将傳回 NaN。

繼續閱讀