Regex para código de color hexadecimal

Usa /^#(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/ para comprobar que una cadena completa es un código de color hexadecimal válido. Cada ejemplo de abajo está probado contra el patrón, y puedes abrirlo en el Probador de Regex con las muestras ya cargadas.

Actualizado el

/^#(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/
Abrir en el Probador de Regex
EntradaResultado
#fff✓ Coincide
#1A2B3C✓ Coincide
#1a2b3c80✓ Coincide
#f0f8✓ Coincide
1a2b3c✗ No coincide
#12345✗ No coincide
#ggg✗ No coincide
#1234567✗ No coincide

Cómo funciona el patrón

ParteSignificado
^#Empieza con #
[0-9a-fA-F]{3,4}Forma corta: #rgb o #rgba
[0-9a-fA-F]{6}Forma completa: #rrggbb
[0-9a-fA-F]{8}Forma completa con alfa: #rrggbbaa

Ejemplos de código

JavaScript

const re = /^#(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'#(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})', value))

PHP

preg_match('/^#(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/', $value) === 1;

Notas y limitaciones

Las cuatro longitudes son válidas en CSS. Elimina las alternativas {3,4} y {8} si tu sistema solo acepta colores de seis dígitos. Convierte entre formatos con el Conversor de color.

Preguntas frecuentes

¿Cuál es la regex para código de color hexadecimal?
/^#(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/ — coincide con la cadena completa. Consulta la tabla de arriba para ver qué hace cada parte.
¿Qué ejemplos coinciden?
De los ejemplos probados, coinciden estos: #fff, #1A2B3C, #1a2b3c80, #f0f8. Los demás no.
¿Cómo pruebo esta regex?
Haz clic en “Abrir en el Probador de Regex”: el patrón, las banderas y el texto de muestra se cargan automáticamente, y las coincidencias se resaltan mientras editas.