RGB から 16 進カラー値を取得する
提供されている jQuery を使用すると、要素の背景色の RGB 値を取得できます。しかし、代わりに 16 進値が必要な場合はどうすればよいでしょうか?
解決策
RGB 値を 16 進値に変換するには、次の 1 行関数を検討してください:
const rgba2hex = (rgba) => `#${rgba.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+\.{0,1}\d*))?\)$/).slice(1).map((n, i) => (i === 3 ? Math.round(parseFloat(n) * 255) : parseFloat(n)).toString(16).padStart(2, '0').replace('NaN', '')).join('')}`
改善された回答(2021)
EcmaScript 機能の進歩により、rgb2hex のより簡潔で更新されたバージョンは次のとおりです:
const rgb2hex = (rgb) => `#${rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/).slice(1).map(n => parseInt(n, 10).toString(16).padStart(2, '0')).join('')}`
使用例
これらの機能は次のように利用できます:
console.log(rgb2hex('rgb(0,0,0)')) // '#000000' console.log(rgb2hex('rgb(255, 255, 255)')) // '#ffffff' console.log(rgb2hex('rgb(255,0,0)')) // '#ff0000' console.log(rgb2hex('rgb(38, 170, 90)')) // '#26aa5a'
以上がJavaScript で RGB カラー値を 16 進数に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。