Querystring参数jQuery

时间:2014-01-03 13:10:37

标签: jquery

如何从以下网址获取值'b'或值'bluebell':

www.example.com/en/park/wildlife-z/?item=bluebell&loc=b

我知道你可以使用location.search但是它会返回url的最后一部分吗?

编辑:

这就是我使用的:

function getParameterByName( name,href )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( href );
  if( results == null )
    return "";
  else
    return decodeURIComponent(results[1].replace(/\+/g, " "));
}

alert(getParameterByName("param1","www.example.com/test?param1=1&param2=2"));

3 个答案:

答案 0 :(得分:0)

虽然已经多次询问过这个问题,但我提出了一段时间后提出的解决方案。我写了一个jquery扩展来做它:

$.extend({
    getUrlVars: function () {
        var vars = [], hash;
        var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
        for (var i = 0; i < hashes.length; i++) {
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }
        return vars;
    },
    getUrlVar: function (name) {
        return $.getUrlVars()[name] || '';
    }
});

然后您可以按如下方式使用它(decodeUri不是必需的,但如果查询字符串是URIEncoded则很方便):

decodeURI($.getUrlVar("Title"))

免责声明:我最初是从博客或本网站获取此内容(并对其进行修改),但我不记得在哪里。没意思从任何人那里获得信任。

答案 1 :(得分:0)

您可以使用php.js并使用parse_urlparse_str函数在PHP中执行此操作:

var url = 'www.example.com/en/park/wildlife-z/?loc=b&str=test';

var query_obj = {};
parse_str( parse_url( url, 'PHP_URL_QUERY' ), query_obj );

// query_obj = {"loc":"b","str":"test"}

同样的结果给出了下面的例子(不使用其他脚本):

var arr = url.slice( url.indexOf( '?' ) + 1 ).split( '&' );

var query_obj = {};
$.each( arr, function( i, value ) {
    value = value.split( '=' );
    query_obj[value[0]] = value[1];
});

// query_obj = {"loc":"b","str":"test"}

答案 2 :(得分:0)

鉴于你给出的一点点信息,我会这样做:

var result = inputString.Split("=")[1];