# Convert hex to RGB

Expand #rgb if needed and read the red, green and blue channels.

Canonical: https://1loc.dev/misc/convert-hex-to-rgb/
Version: 1.0.0
Runtime: JavaScript · Node.js 22 / modern browsers
Verification: Local fixtures; no external services
Updated: 2026-10-28

## Implementation

```javascript
function hexToRgb(hex) { return hex.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, (_, r, g, b) => `#${r}${r}${g}${g}${b}${b}`).substring(1).match(/.{2}/g).map(channel => parseInt(channel, 16)); }
```

## Input

```json
"#1c6141"
```

## Expected output

```json
[
  28,
  97,
  65
]
```

## Edge case

Input:
```json
"fff"
```
Output:
```json
[
  255,
  255,
  255
]
```

## Limits

- Accepts #rgb and #rrggbb with or without #; alpha channels are outside this contract.

The lab validates types and size before calling this function. Add equivalent validation at your own trust boundary.

## Source and license

Original: https://github.com/phuocng/1loc/blob/14b481cf60dff1620ab1bb99a43b1f68068cdd9b/contents/convert-hex-to-rgb.mdx
Author: Nguyen Huu Phuoc and original contributors
Contributors: See original repository history
Source commit: 14b481cf60dff1620ab1bb99a43b1f68068cdd9b
Copyright (c) 2020 phuoc-ng
License: MIT — https://1loc.dev/licenses/
Maintainer: Oveyon
Modifications: Validates #rgb and #rrggbb input before parsing. Original MDX retained as inert source evidence.
