js url参数和对象互转
2024-08-28 13:36:26
function param(a) {
var s = [],
rbracket = /\[\]$/,
isArray = function(obj) {
return Object.prototype.toString.call(obj) === '[object Array]';
},
add = function(k, v) {
v = typeof v === 'function' ? v() : v === null ? '' : v === undefined ? '' : v;
s[s.length] = encodeURIComponent(k) + '=' + encodeURIComponent(v);
},
buildParams = function(prefix, obj) {
var i, len, key; if (prefix) {
if (isArray(obj)) {
for (i = 0, len = obj.length; i < len; i++) {
if (rbracket.test(prefix)) {
add(prefix, obj[i]);
} else {
buildParams(prefix + '[' + (typeof obj[i] === 'object' ? i : '') + ']', obj[i]);
}
}
} else if (obj && String(obj) === '[object Object]') {
for (key in obj) {
buildParams(prefix + '[' + key + ']', obj[key]);
}
} else {
add(prefix, obj);
}
} else if (isArray(obj)) {
for (i = 0, len = obj.length; i < len; i++) {
add(obj[i].name, obj[i].value);
}
} else {
for (key in obj) {
buildParams(key, obj[key]);
}
}
return s;
}; return buildParams('', a).join('&').replace(/%20/g, '+');
} function parseQueryString(url) {
var obj = {};
var keyvalue = [];
var key = "",
value = "";
var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&");
for (var i in paraString) {
keyvalue = paraString[i].split("=");
key = keyvalue[0];
value = keyvalue[1];
obj[key] = value;
}
return obj;
}
最新文章
- 【Java EE 学习 69 中】【数据采集系统第一天】【SSH框架搭建】
- 前端学PHP之面向对象系列第五篇——对象操作
- 10月30日下午 PHP精确查询(模糊查询、模糊+关键字共同查询)
- UNIX网络编程——getsockname和getpeername函数
- Golang 实现简单的滚动读取文本更新
- Java for LeetCode 153 Find Minimum in Rotated Sorted Array
- boost 源码编译 的 Makefile.am写法备份
- Python学习路程day4
- C++ Priority Queues(优先队列) and C++ Queues(队列)
- 【数位DP】bzoj1026: [SCOI2009]windy数
- 注释玩转webapi
- 8、Khala的设备间管理+通信
- python----特性001
- Html 小插件7 新闻免费代码
- NumPy基础:数组和矢量计算
- 利用eclipse新建一个maven项目步骤:
- jQ实现的一个轮播图
- oracle数据库与实例
- webpack下css/js/html引用图片的正确方式
- c/c++ 字节对齐