Je cherche une expression régulière pour valider les couleurs hexadécimales dans ASP.NET C# et
je cherche aussi du code pour la validation côté serveur.
Par exemple : #CCCCCC
Je cherche une expression régulière pour valider les couleurs hexadécimales dans ASP.NET C# et
je cherche aussi du code pour la validation côté serveur.
Par exemple : #CCCCCC
Remarque : Ceci est strictement pour la validation, c'est-à-dire l'acceptation d'une couleur hexadécimale valide. Pour l'analyse réelle, vous n'obtiendrez pas les pièces individuelles hors de cela.
^#(?:[0-9a-fA-F]{3}){1,2}$
Pour ARGB :
^#(?:[0-9a-fA-F]{3,4}){1,2}$
Dissection :
^ 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
Cela correspondra à une valeur de couleur hexadécimale arbitraire qui peut être utilisée dans CSS, telle que #91bf4a
ou #f13
.
Cela doit correspondre #rgb
#rgba
#rrggbb
#rrggbbaa
:
/^#(?:(?:[\da-f]{3}){1,2}|(?:[\da-f]{4}){1,2})$/i
décomposer :
^ // 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')
Notez que ce qui précède n'est pas équivalent à cette syntaxe, ce qui est incorrect :
/^#(?:[\da-f]{3,4}){1,2}$/i
Cela permettrait un groupe de 3 suivi d'un groupe de 4, tel que #1234567
, qui n'est pas une couleur hexadécimale valide.
Ceci si vous voulez accepter les couleurs nommées et rgb(a,b,c) trop. Le "i" final est insensible à la casse.
Couleurs HTML (#123, rgb non accepté)
/^(#[a-f0-9]{6}|black|green|silver|gray|olive|white|yellow|maroon|navy|red|blue|purple|teal|fuchsia|aqua)$/i
Couleurs CSS (#123, rgb accepté)
/^(#[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
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.