tabla pasteles paleta hexadecimales colores codigo buscador regex colors

regex - pasteles - tabla de colores html pdf



Cómo identificar una cadena dada es el formato de color hexadecimal (7)

Rubí

En Ruby, tienes acceso a la clase de caracteres /h (hexadecimal). También debe tener más cuidado con los finales de línea, por lo tanto, /A.../z lugar de los más comunes ^...$

//A#(/h{3}){1,2}/z/

Esto coincidirá con 3 o 6 caracteres hexadecimales después de un #. Así que no hay RGBA. También es insensible a mayúsculas y minúsculas, a pesar de no tener la bandera i .

Estoy buscando una expresión regular para validar los colores hexadecimales en ASP.NET C # y
También estoy buscando código para la validación en el lado del servidor.

Por ejemplo: #CCCCCC


Basado en la respuesta de MSalters, pero previniendo una coincidencia incorrecta, los siguientes trabajos

^#(([0-9a-fA-F]{2}){3}|([0-9a-fA-F]){3})$

O para un símbolo # hash opcional:

^#?(([0-9a-fA-F]{2}){3}|([0-9a-fA-F]){3})$

Y sin que se generen referencias posteriores:

^#?(?:(?:[0-9a-fA-F]{2}){3}|(?:[0-9a-fA-F]){3})$


Esto debería coincidir con cualquier #rgb , #rgba , #rrggbb y #rrggbbaa :

/^#(?:(?:[/da-f]{3}){1,2}|(?:[/da-f]{4}){1,2})$/i

Descompostura:

^ // start of line # // literal pound sign, followed by (?: // either: (?: // a non-capturing group of: [/da-f]{3} // exactly 3 of: a single digit or a letter ''a''–''f'' ){1,2} // repeated exactly 1 or 2 times | // or: (?: // a non-capturing group of: [/da-f]{4} // exactly 4 of: a single digit or a letter ''a''–''f'' ){1,2} // repeated exactly 1 or 2 times ) $ // end of line i // ignore case (let ''A''–''F'' match ''a''–''f'')

Tenga en cuenta que lo anterior no es equivalente a esta sintaxis, que es incorrecta:

/^#(?:[/da-f]{3,4}){1,2}$/i

Esto permitiría un grupo de 3 seguido de un grupo de 4, como #1234567 , que no es un color hexadecimal válido.


Esto si desea aceptar colores con nombre y rgb (a, b, c) también. La "i" final es para mayúsculas y minúsculas.

Colores HTML (# 123, no se acepta rgb)

/^(#[a-f0-9]{6}|black|green|silver|gray|olive|white|yellow|maroon|navy|red|blue|purple|teal|fuchsia|aqua)$/i

Colores CSS (# 123, rgb aceptado)

/^(#[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


Menor desacuerdo con la otra solución. Yo diría que

^#(([0-9a-fA-F]{2}){3}|([0-9a-fA-F]){3})$

La razón es que esto (correctamente) captura los componentes RGB individuales. La otra expresión rompió # 112233 en tres partes, ''#'' 112 233. La sintaxis es en realidad ''#'' (RR GG BB) | (RGB)

La ligera desventaja es que se requiere más retroceso. Al analizar #CCC, no sabes que la segunda C es el componente verde hasta que llegas al final de la cadena; cuando analiza #CCCCCC, no sabe que la segunda C sigue siendo parte del componente rojo hasta que vea la 4ta C.


Todas las respuestas mencionan el formato RGB, aquí hay expresiones regulares para el formato ARGB:

^#[0-9a-fA-F]{8}$|#[0-9a-fA-F]{6}$|#[0-9a-fA-F]{4}$|#[0-9a-fA-F]{3}$


^#(?:[0-9a-fA-F]{3}){1,2}$

Disección:

^ anchor for start of string # the literal # ( start of group ?: indicate a non-capturing group that doesn''t generate backreferences [0-9a-fA-F] hexadecimal digit {3} three times ) end of group {1,2} repeat either once or twice $ anchor for end of string

Esto coincidirá con un valor de color hexadecimal arbitrario que se puede usar en CSS, como #91bf4a o #f13 .

Nota: Sin embargo, no hay soporte para los valores de color hex RGBA.