замените значения строки запроса URL, используя javascript - PullRequest
3 голосов
/ 14 января 2020

Как заменить значения строки запроса URL с помощью javascript

У меня есть URL-адрес типа

xyz.com?src=a&dest=b

Я хочу заменить a = c и b = d

и окончательный URL будет

xyz.com?src=c&dest=d

Ответы [ 4 ]

6 голосов
/ 14 января 2020

Может быть, вы ищете что-то вроде этого:

var url = new URL('https://example.com?src=a&dest=b');

var src = url.searchParams.get('src');
var dest = url.searchParams.get('dest');

console.log('current src:', src);
console.log('current dest:', dest);

var search_params = new URLSearchParams(url.search); 

search_params.set('src', 'c');
search_params.set('dest', 'd');

url.search = search_params.toString();

var new_url = url.toString();

console.log(new_url);
0 голосов
/ 14 января 2020

Ниже приведен чистый код js (ES5) для выполнения этой работы.

function updateSearchParams() {
        var searchStr = window.location.search,
            resultSearchArray = [], resultSearchStr;
        var searchParamsStr =  searchStr.split('?')[1];
        var searchParamsArray = searchParamsStr.split('&');
        for(var searchIter = 0; searchIter < searchParamsArray.length; searchIter++) {
            var searchParam = searchParamsArray[searchIter];
            var searchParamKey = searchParam.split('=')[0];
            var searchParamValue = searchParam.split('=')[1];
            // Below modification is just an example - Ideally the below string check should be via constants declared
            if(searchParamKey === 'src') {
                searchParamValue = 'c'
            } else if(searchParamKey === 'dest') {
                searchParamValue = 'd';
            }
            resultSearchStr = searchParamKey + '=' + searchParamValue;
            resultSearchArray.push(resultSearchStr);
        }
        window.location.search = '?' + resultSearchArray.join('&');
    }

Просто вызовите эту функцию, и она должна работать.

0 голосов
/ 14 января 2020

Следуйте этому:

const urlObject = new URL(url);
const id = urlObject.searchParams.get('id')
console.log(id)

Это поможет вам взять параметры, а затем:

new URLSearchParams(url)

, используя это, вы можете создать новые параметры.

0 голосов
/ 14 января 2020

Вы можете просто использовать String.prototype.replace , например:

let myString = "xyz.com?src=a&dest=b";
myString = myString.replace("=a","=c");
myString = myString.replace("=b","=d");
console.log(myString);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...