Почему возвращает null?
В условии задания нужно найти все совпадения цветов в шестнадцатеричной системе и вернуть их в массив, использовав RegExp. Вот мой код, кто-то может сказать почему str.match возвращает null?
function getHexadecimalColors(str){
const regExp = /^#(?:[0-9a-f]{3}){1,2}$/gi;
return str.match(regExp);
}
const testString = 'color: #3f3; background-color: #AA00ef; and: #abcd';
console.log(getHexadecimalColors(testString));
Ответы (1 шт):
Автор решения: vsemozhebuty
→ Ссылка
Знаки ^ и $ означают начало и конец строки, а у вас ни одно обозначение цвета не удовлетворяет требованию нахождения между началом и концом строки. Первый знак можно удалить, а второй заменить на \b — требование границы между словесными и несловесными символами.
function getHexadecimalColors(str){
const regExp = /#(?:[0-9a-f]{3}){1,2}\b/gi;
return str.match(regExp);
}
const testString = 'color: #3f3; background-color: #AA00ef; and: #abcd';
console.log(getHexadecimalColors(testString));