0


前端获取地址栏参数的几种方法

**1 使用

  1. URLSearchParams

API**(现代浏览器支持)

  1. const urlParams = new URLSearchParams(window.location.search);
  2. const paramsObject = {};
  3. for (const param of urlParams.entries()) {
  4. paramsObject[param[0]] = param[1];
  5. }
  6. console.log(paramsObject);

2 **使用

  1. split()

  1. reduce()

**

  1. const urlParams = window.location.search.substring(1).split('&');
  2. const paramsObject = urlParams.reduce((params, param) => {
  3. const [key, value] = param.split('=');
  4. params[key] = decodeURIComponent(value);
  5. return params;
  6. }, {});
  7. console.log(paramsObject);

3 使用正则表达式匹配

  1. const urlParams = window.location.search.substr(1).match(/(\w+)=?([\w%]+)?/g);
  2. const paramsObject = {};
  3. urlParams.forEach(param => {
  4. const [key, value] = param.split('=');
  5. paramsObject[key] = decodeURIComponent(value || '');
  6. });
  7. console.log(paramsObject);

4 如果使用jQuery或Zepto.js,可以这样

  1. function getURLParams() {
  2. var params = {};
  3. $.each(window.location.search.slice(1).split('&'), function(i, param) {
  4. var parts = param.split('=');
  5. params[decodeURIComponent(parts[0])] = decodeURIComponent(parts[1] || '');
  6. });
  7. return params;
  8. }
  9. var params = getURLParams();
  10. console.log(params);

以上方法中,

  1. window.location.search

返回URL查询字符串(即URL中

  1. ?

后面的部分)。注意,所有方法都需要对参数进行解码,以防URL编码导致的中文乱码问题,使用

  1. decodeURIComponent()

函数来进行解码。


本文转载自: https://blog.csdn.net/whidh/article/details/140171519
版权归原作者 牛马X 所有, 如有侵权,请联系我们删除。

“前端获取地址栏参数的几种方法”的评论:

还没有评论