Регулярные выражения JS | Найти подстроку в строке

Есть строка:

let url = "http://любой_домен/filter?size=M&color=1&color=2&manufacturer=aaa&manufacturer=ddd"

Используя метод match хочу найти подстроку. Где находится слово color. На выходе должен получиться массив, который будет содержать в себе color=1 & color=2.

let color = url.match(/color\=\S+?&?/i) 

Эта запись возвращает, только первое совпадение color=1.


Ответы (2 шт):

Автор решения: entithat

let url = 'http://любой_домен/filter?size=M&color=1&color=2&manufacturer=aaa&manufacturer=ddd';
let color = url.match(/color\=\S+?&?/ig);
console.log(color);

→ Ссылка
Автор решения: vsemozhebuty

Возможно, для вашего случая надёжнее использовать не регулярки, а специально предназначенные для парсинга адресов средства (URL и URLSearchParams):

const urlString = "https://example.org/filter?size=M&color=1&color=2&manufacturer=aaa&manufacturer=ddd";

const url = new URL(urlString);

console.log(url.searchParams.getAll('color'));

→ Ссылка