Esto si desea aceptar y colores rgb con nombre (a, b, c) también. La "i" final es para mayúsculas y minúsculas.
colores HTML (# 123, rgb no aceptada)
/^(#[a-f0-9]{6}|black|green|silver|gray|olive|white|yellow|maroon|navy|red|blue|purple|teal|fuchsia|aqua)$/i
colores CSS (# 123, rgb aceptada)
/^(#[a-f0-9]{6}|#[a-f0-9]{3}|rgb *\(*[0-9]{1,3}%? *, *[0-9]{1,3}%? *, *[0-9]{1,3}%? *\)|rgba *\(*[0-9]{1,3}%? *, *[0-9]{1,3}%? *, *[0-9]{1,3}%? *, *[0-9]{1,3}%? *\)|black|green|silver|gray|olive|white|yellow|maroon|navy|red|blue|purple|teal|fuchsia|aqua)$/i
pensé que era de color válido 3 * un combo medio ... así/^ # (?: [0-9a-fA-F] {1,2}) {3} $/Ambas formas parecen funcionar. –
@MichaelDausmann: No, los tuyos aceptarían cualquier cosa entre 3 y 6 dígitos hexadecimales. – Joey
@Joey muy útil la explicación paso a paso. gracias – Karim