javascript使用RegExp正则封装一个获取地址栏参数方法

处理地址栏参数
示例路径:https://www.baidu.com/s?wd=11&rsv_spt=1&rsv_iqid=0x9b723bb400023df2&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=0&rsv_dl=tb&rsv_sug3=3&rsv_sug1=2&rsv_sug7=100&rsv_btype=i&prefixsug=11&rsp=1&inputT=1529&rsv_sug4=1958#baidu

      String.prototype.queryURLParams = function () {
        let strs = this,
          obj = {},
          //取左边和右边不包含?=&#特殊字符的参数
          regs = /([^?=&#]+)=([^?=&#]+)/g,
          //取# 是非 ?=&#特殊字符的zhi
          regs2 = /#([^?=&#]+)/g;
		//  $1, $2 分别代表左边匹配的第一个参数属性和属性值
        strs.replace(regs, (_, $1, $2) => {
          obj[$1] = $2;
        });

        strs.replace(regs2, (_, $1) => {
          obj['hash'] = $1;
        });

        return obj;
      };

      const strps = `https://www.baidu.com/s?wd=11&rsv_spt=1&rsv_iqid=0x9b723bb400023df2&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=0&rsv_dl=tb&rsv_sug3=3&rsv_sug1=2&rsv_sug7=100&rsv_btype=i&prefixsug=11&rsp=1&inputT=1529&rsv_sug4=1958#baidu`;
      console.log(strps.queryURLParams());
		// 打印结果
		{
	    "wd": "11",
	    "rsv_spt": "1",
	    "rsv_iqid": "0x9b723bb400023df2",
	    "issp": "1",
	    "f": "8",
	    "rsv_bp": "1",
	    "rsv_idx": "2",
	    "ie": "utf-8",
	    "tn": "baiduhome_pg",
	    "rsv_enter": "0",
	    "rsv_dl": "tb",
	    "rsv_sug3": "3",
	    "rsv_sug1": "2",
	    "rsv_sug7": "100",
	    "rsv_btype": "i",
	    "prefixsug": "11",
	    "rsp": "1",
	    "inputT": "1529",
	    "rsv_sug4": "1958",
	    "hash": "baidu"
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追逐梦想之路_随笔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值