用js获取url参数

用js获取url参数

首先我们要知道url参数指的是哪部分,其实它的参数就是?之后的部分,以&相连接,我们需要做的就是把它们获取到,放在一个对象中。下边是代码演示:

//substring() 方法用于提取字符串中介于两个指定下标之间的字符。
//split() 方法用于把一个字符串分割成字符串数组。
//encodeURI() 函数可把字符串作为 URI 进行编码。
//unescape() 函数可对通过 escape() 编码的字符串进行解码。
//slice() 方法可从已有的数组中返回选定的元素。

var a = 'https://www.suibian.com/?subIndustry=dfav&init=-l&insturyType=instury0l&headckid=deep&ddd=dfgv';
var   arr = a.substring(a.indexOf("?")+1).split("&");
let obj={}
 arr.forEach((item)=>{
     let arr = item.split('=');
    //  console.log(arr);
     obj[arr[0]] = arr[1];
    //  console.log(obj[arr[0]]);
})
console.log(obj);

为了帮助大家理解,给大家解析一下编码思路,首先将变量里边?第一次出现的位置加1开始,他之后的字符全都截取,然后将这些字符以&符号分割成字符串数组。
接下来我们需要用到forEach(),该方法为数组的每一个元素执行提交的函数,将原arr数组里边的每一个元素都用=分割成一个新的数组在赋值给arr,我们在这里可以打印一下此时的arr数组里边的内容以方便我们大家理解。
[ 'subIndustry', 'dfav' ] [ 'init', '-l' ] [ 'insturyType', 'instury0l' ] [ 'headckid', 'deep' ] [ 'ddd', 'dfgv' ]
obj[arr[0]] = arr[1]; 这一步的意思是说对象obj这个对象的键所应该对应的键值
{ subIndustry: 'dfav', init: '-l', insturyType: 'instury0l', headckid: 'deep', ddd: 'dfgv' }

第二种方法(建议)

URLSearchParams 接口定义了一些实用的方法来处理 URL 的查询字符串。

let a = "https://www.suibian.com/?subIndustry=&init=-1&industryType=industry_01&headckid=deeeb5d3fe551993";
let b = a.substring(a.indexOf("?") + 1);
let aaa = new URLSearchParams(b);
console.log(aaa);
//此处如果需要单独某个参数的话,可以用get
//let name=aaa.get('industryType');
//console.log(name);//industry_01
let obj = {};
for (var it of aaa) {
    console.log(it);
    obj[it[0]] = it[1];
}
console.log(obj);

aaa打印出来如下

URLSearchParams {
  'subIndustry' => '',
  'init' => '-1',
  'industryType' => 'industry_01',
  'headckid' => 'deeeb5d3fe551993' }

it打印出来如下

[ 'subIndustry', '' ]
[ 'init', '-1' ]
[ 'industryType', 'industry_01' ]
[ 'headckid', 'deeeb5d3fe551993' ]

最终的结果

{
  subIndustry: '',
  init: '-1',
  industryType: 'industry_01',
  headckid: 'deeeb5d3fe551993'
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值