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