来自 url javascript 的 Prase 查询字符串

Prase query string from url javascript

本文关键字:查询 字符串 Prase url javascript 来自      更新时间:2023-09-26

我的网址看起来像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/

谢谢

可能是以下内容会有所帮助

   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']);

我也只是从其他地方得到这个。

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);
}

到目前为止,它正在做它的工作。 带有网址:"http://urlhere.com/general_journal?from=01%2F14%2F2016&to=01%2F14%2F2016&per_page=25&page=2"

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

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

也许这会有所帮助

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