从url javascript中删除查询字符串

时间:2016-01-14 09:46:13

标签: javascript

我的网址看起来像http://localhost:13562/Student/RefreshStudents?sort=FirstName&sortdir=ASC&page=1

现在我正在寻找一个函数,我将传递url和查询字符串名称,然后返回值。

所以我这样做但没有工作。

function getQueryVariable(url,variable) {
    var query = url;
    var vars = query.split('&');
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split('=');
        if (decodeURIComponent(pair[0]) == variable) {
            return decodeURIComponent(pair[1]);
        }
    }
    console.log('Query variable %s not found', variable);
}

这样打电话

var x='http://localhost:13562/Student/RefreshStudents?sort=FirstName&sortdir=ASC&page=1'

alert(getQueryVariable(x,'sort'));
alert(getQueryVariable(x,'sortdir'));
alert(getQueryVariable(x,'page'));

我犯了错误?

修改

工作代码

$.urlParam = function(url,name){
    var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(url);
    if (results==null){
       return null;
    }
    else{
       return results[1] || 0;
    }
}

var x='http://localhost:13562/Student/RefreshStudents?sort=FirstName&sortdir=ASC&page=1'

alert($.urlParam(x,'sort'));
alert($.urlParam(x,'sortdir'));
alert($.urlParam(x,'page'));

https://jsfiddle.net/z99L3985/1/

感谢

3 个答案:

答案 0 :(得分:1)

我也是从其他地方得到的......

function getQueryVariable(variable)
{
       var query = window.location.search.substring(1);
       var vars = query.split("&");
       console.log(vars);
       for (var i=0;i<vars.length;i++) {
               var pair = vars[i].split("=");
               if(pair[0] === variable){return pair[1];}
       }
       return(false);
}

到目前为止它的工作。     使用网址:&#34; http://urlhere.com/general_journal?from=01%2F14%2F2016&to=01%2F14%2F2016&per_page=25&page=2&#34;

if im going to get the 'page' variable result would be : `2`
console.log(getQueryVariable('page'));

我的query变量只获取了网址的search.substring(1)部分,所以基本上它只获得了网址的from=01%2F14%2F2016&to=01%2F14%2F2016&per_page=25&page=2部分,然后从中分割了它,然后返回值例如,您在函数调用getQueryVariable('page')上指定的字符串参数。

答案 1 :(得分:1)

可能会有以下帮助

   function getUrlVars(url) {
        var vars = {};
        var parts = url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {

            vars[key] = value;
        });
        return vars;
    }

    var x='http://localhost:13562/Student/RefreshStudents?sort=FirstName&sortdir=ASC&page=1';

    var queryVars = getUrlVars(x);
    alert(queryVars['sort']);
    alert(queryVars['sortdir']);
    alert(queryVars['page']);

答案 2 :(得分:0)

也许这有帮助

var getUrlVars = function(url){
    var vars = [], hash;
    var hashes = url.slice(url.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++){
        hash = hashes[i].split('=');
        vars.push(decodeURIComponent(hash[0]));
        vars[decodeURIComponent(hash[0])] = decodeURIComponent(hash[1]);
    }
    if(vars[0] == url){
        vars =[];
    }
    return vars;
}

然后在你的代码中

var params = getUrlVars("http://localhost:13562/Student/RefreshStudents?sort=FirstName&sortdir=ASC&page=1");
console.log(params["sort"]) // FirstName