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