JS Regex захват между символами ИЛИ конец строки

У меня есть поисковый запрос, из которого я пытаюсь извлечь условия поиска, но регулярное выражение работает не так, как я хочу.

У меня есть два запроса:
Первый:

?search=mango+pineapple+banana&filter=fruit+berry

Во-вторых:

?search=mango

Я пытаюсь извлечь URL между "search=" и & ИЛИ концом строки. Получение строки, когда '&' находится в строке, работает как талисман, но если нет, я бы хотел, чтобы он захватывал до конца строки.

Regex

searchterms = url.match(/\?search=(.*?)&|$/);

Регулярное выражение, которое я использую, возвращает undefined, если в URL нет амперсанда. Я пытался использовать разные группы захвата, но я просто не могу заставить его работать. Есть идеи, что я делаю не так?

Изменить: это не совсем то же самое, что эта ссылка. Я попытался использовать регулярное выражение, настроенное в ссылке, например: url.match(/(&|\?search=).*?(&|$)/) но то, что попадает в плен, это только "?search=" а не строка после.

0 ответов

Другие вопросы по тегам