Знайти колір у форматі #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