1.4 KiB
1.4 KiB
Итак, нужно написать выражение для описания цвета, который начинается с "#", за которым следуют 6 шестнадцатеричных символов.
Шестнадцатеричный символ можно описать с помощью pattern:[0-9a-fA-F]
. Мы можем сократить выражение, используя не чувствительный к регистру шаблон pattern:[0-9a-f]
.
Для его шестикратного повторения мы будем использовать квантификатор pattern:{6}
.
В итоге, получаем выражение вида pattern:/#[a-f0-9]{6}/gi
.
var re = /#[a-f0-9]{6}/gi;
var str = "color:#121212; background-color:#AA00ef bad-colors:f#fddee #fd2";
alert( str.match(re) ); // #121212,#AA00ef
Проблема этого выражения в том, что оно находит цвет и в более длинных последовательностях:
alert( "#12345678".match( /#[a-f0-9]{6}/gi ) ) // #12345678
Чтобы такого не было, можно добавить в конец \b
:
// цвет
alert( "#123456".match( /#[a-f0-9]{6}\b/gi ) ); // #123456
// не цвет
alert( "#12345678".match( /#[a-f0-9]{6}\b/gi ) ); // null