Javascript jQuery从url获取数组值
我有这样一个url:Javascript jQuery从url获取数组值,javascript,jquery,url,arrays,get,Javascript,Jquery,Url,Arrays,Get,我有这样一个url: http://www.somewhere.com/index.html?field[]=history&field[]=science&field[]=math 使用jQuery,如何获取GET数组 谢谢。[] /* *返回querystring参数的映射 * *[]类型的键将自动添加到数组中 * *@param字符串url *@返回对象参数 */ 函数getParams(url){ var regex=/([^=&?]+)=([^]*)/g,par
http://www.somewhere.com/index.html?field[]=history&field[]=science&field[]=math
使用jQuery,如何获取GET数组
谢谢。[]
/*
*返回querystring参数的映射
*
*[]类型的键将自动添加到数组中
*
*@param字符串url
*@返回对象参数
*/
函数getParams(url){
var regex=/([^=&?]+)=([^]*)/g,params={},parts,key,value;
while((parts=regex.exec(url))!=null){
键=零件[1],值=零件[2];
var isArray=/\[\]$/.test(键);
如果(isArray){
params[key]=params[key]| |[];
参数[key].push(值);
}
否则{
参数[键]=值;
}
}
返回参数;
}
您的底层HTML服务器是什么、PHP还是其他什么?服务器是PHP,我正在尝试基于jquery datatables过滤器过滤一个大表。。。所以我需要通过jquery将数组传递给过滤器才能工作。。。如果有意义的话。如果URL有一个命名的锚,则正则表达式将失败。可能会将[^&]
更改为[^]
。非常感谢您的提示,我已经更新了代码和url:)对于代码段,请在此处使用它:
var str = "http://www.somewhere.com/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;
}