对地址栏数据处理

本文介绍了两个JavaScript函数,一个将对象转换为使用&拼接的字符串,另一个将这样的字符串还原为对象。同时,提供了一个获取URL查询参数的函数,以及在Next.js的React项目中如何获取路由查询参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// 对象转用&拼接的字符串
function ObjectToString(object) {
  // 预设返回的拼接结果
  let string = '';
  Object.keys(object)
    .forEach((item) => {
      if (string == '') {
        string = `${item}=${object[item]}`;
      } else {
        string = `${string}&${item}=${object[item]}`;
      }
    });
  return string;
}
console.log(ObjectToString({ a: 1, b: 2 }));

// &拼接的字符串转用对象
// 获取地址栏的拼接的参数
let searchData = window.location.search.slice(1)
function StringToObject(string) {
  // 预设返回的对象
  let object = {};
  let stringArray = string.split('&');
  for (let i = 0; i < stringArray.length; i++) {
    let item = stringArray[i].split('=');
    let key = item[0];
    let value = item[1];
    object[key] = value;
  }
  return object;
}
console.log(StringToObject(searchData));

// 地址栏的对应拼接参数
function GetQueryString(name) {
  let reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')
  let r = window.location.search.substr(1).match(reg)
  if (r != null) return unescape(r[2])
  return null
}
console.log(GetQueryString('a'));

注:上边的获取地址栏对应参数的方法遇到地址栏出现拼接容易出现拼接上一些不正常的字段,可以从 window.location 对象获取合适的字段;获取的字段出现问题,可让第一个搜索对无意义(原因是正则匹配时,对开始的位置匹配不准)

对于.next创建的react项目获取地址栏信息:

import { useRouter } from 'next/router';
const router = useRouter();
{data}=router.query as { data: string }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值