Регулярные выражения 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'));