封装一个方法获取url上面的参数

一、取参  
function getAllUrlParams( url) {
var queryString = url ? url. split( '?')[ 1] : window. location. search. slice( 1);
var obj = {};
if ( queryString) {
queryString = queryString. split( '#')[ 0];
var arr = queryString. split( '&');
for ( var i = 0; i < arr. length; i++) {
var a = arr[ i]. split( '=');
var paramNum = undefined;
var paramName = a[ 0]. replace( / \[ \d *\] /, function ( v) {
paramNum = v. slice( 1, - 1);
return '';
});
// 设置参数值(如果为空则设置为true)
var paramValue = typeof ( a[ 1]) === 'undefined' ? true : a[ 1];
// paramName = paramName.toLowerCase();
// paramValue = paramValue.toLowerCase();
if ( obj[ paramName]) {
if ( typeof obj[ paramName] === 'string') {
obj[ paramName] = [ obj[ paramName]];
}
if ( typeof paramNum === 'undefined') {
obj[ paramName]. push( paramValue);
} else {
obj[ paramName][ paramNum] = paramValue;
}
} else {
obj[ paramName] = paramValue;
}
}
}
return obj;
}
console. log( getAllUrlParams( 'http://display.intdmp.com/site_login_ijf.htm?app_key=adhu3e534be06456426b&acc=asda'));
//{app_key: "adhu3e534be06456426b", acc: "asda"}
 

二、存参

 pasting

function toQueryPair( key, value, bo) {
if ( typeof value === 'undefined') {
return key;
}
return key + '=' + ( bo ? encodeURIComponent( value === null ? '' : String( value)) : value === null ? '' : String(
value));
}
const toBodyString = function ( obj, bo = true) {
let ret = [];
for ( let key in obj) {
let values = obj[ key];
if ( values && values. constructor === Array) { //数组
let queryValues = [];
for ( let i = 0, len = values. length, value; i < len; i++) {
value = values[ i];
queryValues. push( toQueryPair( key, value));
}
ret = ret. concat( queryValues);
} else { //字符串
ret. push( toQueryPair( key, values, bo));
}
}
return ret. join( '&');
}
console. log( toBodyString({
a: 123546,
b: 'fdfdfd',
c: '9999'
})); //a=123546&b=fdfdfd&c=9999

转载于:https://www.cnblogs.com/yunshangwuyou/p/9661534.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值