jQuery的修改网址,以获取参数(jquery modify url get parameters

2019-08-03 04:41发布

我有这样的网址:

http://google.de/test.php?a=b&c=d&e=f

我知道得了修改只是GET PARAMS像这样的一个:( c是“H”,而不是“d”)

http://google.de/test.php?a=b&c=h&e=f

并重定向到新的URL。 所有其他GET PARAMS应该保持不变。

我要怎么做呢?

Answer 1:

我同意它的最好的,因为在其他的答案中提到使用库用于这一目的。

然而,这里是基于正则表达式,如果你需要一个更简单的速战速决的字符串替代解决方案。

var url = "http://my.com/page?x=y&z=1&w=34";

var regEx = /([?&]z)=([^#&]*)/g;
var newurl = url.replace(regEx, '$1=newValue');

在这里,我更换的查询字符串键“Z”与“newVlaue”

看看这个小提琴: http://jsfiddle.net/BuddhiP/PkNsx



Answer 2:

PHP的一个鲜为人知的特点是,现有参数的后者命名覆盖前面。

有了这些知识在手,你可以做到以下几点:

location.href = location.href + '&c=h';

简单。



Answer 3:

如前所述window.location.search会给你的查询字符串? 包括在内。

然后我能将这些成一个对象(也许就像一个图书馆http://github.com/medialize/URI.js ),使其更容易与PARAMS工作。 像var params = { key: value, key1: value1}

然后,你可以修改你想要的价值和转换您的键值对回查询字符串。

在此之后,你可以使用window.location用户移动到下一个页面。



Answer 4:

我已经把一个非常简单的方法,但它只会与你想达到什么样的工作:

var url = 'http://google.de/test.php?a=b&c=d&e=f';
var gets =  url.split('.php?');
var ge = gets[1].split('&');
var change = ge[1].split('=');
var change[1] = 'h';
var newUrl = url[0] + '.php?' + ge[0] + '&' + change[0] + '=' + change[1] + '&' + ge[2];


Answer 5:

由于您的参数可以在任何地方。 因此,这将正常工作

url="http://google.de/test.php?a=b&c=d&e=f";
url=url.replace(/&c=.*&/,"&c=h&")


Answer 6:

你可以尝试这样的事情:

var changed = "h"; // you can vary this GET parameter

var url = "http://google.de/test.php?a=b&e=f&c=" + changed; // append it to the end

window.location = newurl; // redirect the user to the url


Answer 7:

设置或更新使用HTML history.replaceState一个URL /查询参数和更新网址()

你可以尝试这样的事情:

var updateQueryStringParam = function (key, value) {
    var baseUrl = [location.protocol, '//', location.host, location.pathname].join(''),
        urlQueryString = document.location.search,
        newParam = key + '=' + value,
        params = '?' + newParam;

    // If the "search" string exists, then build params from it
    if (urlQueryString) {
        keyRegex = new RegExp('([\?&])' + key + '[^&]*');

        // If param exists already, update it
        if (urlQueryString.match(keyRegex) !== null) {
            params = urlQueryString.replace(keyRegex, "$1" + newParam);
        } else { // Otherwise, add it to end of query string
            params = urlQueryString + '&' + newParam;
        }
    }
    window.history.replaceState({}, "", baseUrl + params);
};


Answer 8:

location.href = location.origin+location.pathname+location.search;

通过像“?富=酒吧和抽动= TAC”新论点更换location.search



文章来源: jquery modify url get parameters