Мне нужно использовать регулярные выражения для замены или добавления запроса к URL-адресу с помощью функции adjustUrlParameter (url, param). Если такой же запрос существует в URL-адресе, он должен заменить запрос параметром (то есть ID = 501 должен заменить ID = 200 на google.com?ID=200). Если запрос не существует, он должен просто добавить запрос в конец URL-адреса. Наконец, если запрос существует, но другого типа, он должен добавить запрос и отделить его от существующего запроса с помощью «&». Вот пример:Как заменить параметр запроса в URL с помощью Regex?
adjustUrlParameter('google.com?ID=501', 'TYPE=444') // => 'google.com?ID=501&TYPE=444'
Мой код не заменяет тот же тип запроса. Он возвращает 'google.com?ID=501 & ID = 200' вместо того, чтобы возвращать 'google.com?ID=200'. Вот мой код:
var adjustUrlParameter = function(url, param) {
var urlQuery = url.match(/\w+\W+/g);
for (var i = 0; i < urlQuery.length; i++) {
if (param === urlQuery[i]) {
return url.replace(/\?.+$/, '?' + param);
}
}
if (url.match(/\?/)) {
return url + "&" + param;
} else {
return url + "?" + param;
}
};
Как получить adjustUrlParameter ('google.com?ID=501', 'ID = 201'), чтобы вернуть правильный результат ('google.com?ID=201')?