retour au cours

Trouver des couleurs au format #abc ou #abcdef

Écrire une RegExp qui correspond à des couleurs au format #abc ou #abcdef. C’est à dire : # suivi par 3 ou 6 chiffres hexadécimaux.

Exemple d’utilisation :

let regexp = /your regexp/g;

let str = "color: #3f3; background-color: #AA00ef; and: #abcd";

alert( str.match(regexp) ); // #3f3 #AA00ef

P.S. Cela doit être exactement 3 ou 6 chiffres. Des valeurs avec 4 chiffres, comme #abcd, ne doivent pas ressortir.

Une regexp pour chercher une couleur à trois chiffres #abc: /#[a-f0-9]{3}/i.

Nous pouvons y ajouter les 3 autres chiffres optionnels. Nous n’avons pas besoin de plus ou moins. La couleur a soit 3 ou 6 chiffres.

Utilisons le quantificateur {1,2} pour obtenir /#([a-f0-9]{3}){1,2}/i.

Ici le schéma [a-f0-9]{3} est entouré de parenthèses pour lui appliquer le quantificateur {1,2}.

En pratique :

let regexp = /#([a-f0-9]{3}){1,2}/gi;

let str = "color: #3f3; background-color: #AA00ef; and: #abcd";

alert( str.match(regexp) ); // #3f3 #AA00ef #abc

Il reste un petit problème ici : car ce schéma trouve #abc dans #abcd. Pour éviter cela nous pouvons ajouter à la fin \b :

let regexp = /#([a-f0-9]{3}){1,2}\b/gi;

let str = "color: #3f3; background-color: #AA00ef; and: #abcd";

alert( str.match(regexp) ); // #3f3 #AA00ef