zpět k lekci

Najděte barvu ve formátu #abc nebo #abcdef

Napište RV, který najde barvy ve formátu #abc nebo #abcdef. To znamená: # následované 3 nebo 6 hexadecimálními číslicemi.

Příklad použití:

let rv = /váš RV/g;

let řetězec = "color: #3f3; background-color: #AA00ef; and: #abcd";

alert( řetězec.match(rv) ); // #3f3 #AA00ef

P.S. Počet hexadecimálních číslic by měl být přesně 3 nebo 6. Hodnoty se 4 číslicemi, např. #abcd, by se neměly shodovat.

Regulární výraz hledající 3-cifernou barvu #abc: /#[a-f0-9]{3}/i.

Můžeme přidat přesně 3 další nepovinné hexadecimální číslice. Nepotřebujeme jich více ani méně. Barva má buď 3, nebo 6 číslic.

Použijme k tomu kvantifikátor {1,2}: získáme /#([a-f0-9]{3}){1,2}/i.

Zde je vzor [a-f0-9]{3} uzavřen do závorek, aby se na něj aplikoval kvantifikátor {1,2}.

V akci:

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

let řetězec = "color: #3f3; background-color: #AA00ef; and: #abcd";

alert( řetězec.match(rv) ); // #3f3 #AA00ef #abc

Je tady malý problém: vzor nalezl #abc v #abcd. Abychom tomu zabránili, můžeme na konec přidat \b:

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

let řetězec = "color: #3f3; background-color: #AA00ef; and: #abcd";

alert( řetězec.match(rv) ); // #3f3 #AA00ef