JS Regex захват между символами ИЛИ конец строки
У меня есть поисковый запрос, из которого я пытаюсь извлечь условия поиска, но регулярное выражение работает не так, как я хочу.
У меня есть два запроса:
Первый:
?search=mango+pineapple+banana&filter=fruit+berry
Во-вторых:
?search=mango
Я пытаюсь извлечь URL между "search=" и & ИЛИ концом строки. Получение строки, когда '&' находится в строке, работает как талисман, но если нет, я бы хотел, чтобы он захватывал до конца строки.
Regex
searchterms = url.match(/\?search=(.*?)&|$/);
Регулярное выражение, которое я использую, возвращает undefined, если в URL нет амперсанда. Я пытался использовать разные группы захвата, но я просто не могу заставить его работать. Есть идеи, что я делаю не так?
Изменить: это не совсем то же самое, что эта ссылка. Я попытался использовать регулярное выражение, настроенное в ссылке, например: url.match(/(&|\?search=).*?(&|$)/)
но то, что попадает в плен, это только "?search="
а не строка после.