назад до уроку

Знайти колір у форматі #abc або #abcdef

Напишіть регулярний вираз, що знаходить збіг по кольорам у форматі #abc або #abcdef. Формула є наступною: #, за яким знаходяться 3 або 6 шістнадцяткових цифр.

Приклад використання:

let regexp = /ваш регулярний вираз/g;

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

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

P.S. Має бути саме 3 або 6 шістнадцяткових цифр. Значення з 4 цифрами, такі як #abcd, не мають рахуватись за збіг.

Регулярний вираз для пошуку тризначного коду кольору #abc: /#[a-f0-9]{3}/i.

Ми можемо додати рівно 3 додаткові шістнадцяткові цифри, не більше й не менше. Колір містить 3 або 6 цифр.

Використаємо для цього квантифікатор {1,2}: отримаємо /#([a-f0-9]{3}){1,2}/i.

В цьому випадку, шаблон [a-f0-9]{3} оточений дужками для застосування квантифікатора {1,2}.

Код у дії:

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

Бачимо невелику проблему: вираз знайшов #abc в #abcd. Для запобігання цьому, додамо в кінці \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