最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - jQuery get array values from url - Stack Overflow

programmeradmin0浏览0评论

I've got an url like this:

.html?field[]=history&field[]=science&field[]=math

Using jQuery, how can I grab the GET array?

Thanks.

I've got an url like this:

http://www.somewhere./index.html?field[]=history&field[]=science&field[]=math

Using jQuery, how can I grab the GET array?

Thanks.

Share Improve this question edited Jul 8, 2010 at 17:30 Brock Adams 93.6k23 gold badges241 silver badges305 bronze badges asked Jul 6, 2010 at 17:02 JeffreyJeffrey 4,14612 gold badges44 silver badges66 bronze badges 2
  • What is your underlying HTML server, PHP, or something else? – mcandre Commented Jul 6, 2010 at 17:06
  • server does PHP, I'm trying to filter a large table based on the jquery datatables filter... so I need to pass the array through jquery for the filter to work... if that makes sense. – Jeffrey Commented Jul 6, 2010 at 17:32
Add a ment  | 

2 Answers 2

Reset to default 6

[See it in action]

var str = "http://www.somewhere./index.html?field[]=history&field[]=science&field[]=math";

var match = str.match(/[^=&?]+\s*=\s*[^&#]*/g);
var obj = {};

for ( var i = match.length; i--; ) {
  var spl = match[i].split("=");
  var name = spl[0].replace("[]", "");
  var value = spl[1];

  obj[name] = obj[name] || [];
  obj[name].push(value);
}

alert(obj["field"].join(", "))​​
/*
 * Returns a map of querystring parameters
 * 
 * Keys of type <fieldName>[] will automatically be added to an array
 *
 * @param String url
 * @return Object parameters
 */
function getParams(url) {
    var regex = /([^=&?]+)=([^&#]*)/g, params = {}, parts, key, value;

    while((parts = regex.exec(url)) != null) {

        key = parts[1], value = parts[2];
        var isArray = /\[\]$/.test(key);

        if(isArray) {
            params[key] = params[key] || [];
            params[key].push(value);
        }
        else {
            params[key] = value;
        }
    }

    return params;
}
发布评论

评论列表(0)

  1. 暂无评论