カラーコードの変換 (Hex -> RGB)
例えば#ff0000
をrgb(255,0,0)
に変換したい場合。
- カラーコード(文字列)を2文字ずつに分ける
- 16進法を10進法に変換する
import compose from 'lodash/fp/compose'; import map from 'lodash/fp/map'; function hexToRgb(hex: string): string { return compose( (decimals) => `rgb(${decimals.join(',')})`, // hex to decimal map((hex) => parseInt(hex, 16)), // split string every 2 characters // e.g. 'ff0000' -> ['ff', '00', '00'] (hex) => hex.match(/.{1,2}/g), // remove `#` (hex) => hex.substr(1), )(hex); } console.error(hexToRgb('#ff0000')); // -> 'rgb(255,0,0)'
split
も正規表現が使えた。文字を分割する処理に関してはsplit
でもできそう。