首页 > 其他分享 >js获取URL参数

js获取URL参数

时间:2024-03-11 13:57:55浏览次数:13  
标签:URL js url 参数 split arg let arguments

1.正则

function queryURLparamsRegEs5(url) {
    let obj = {}
    let reg = /([^?=&]+)=([^?=&]+)/g
    //使用arguments伪数组
    url.replace(reg, function() {
        //arguments[1]是参数的key;arguments[2]是参数的value
        obj[arguments[1]] = arguments[2]
    })
    //使用...arg剩余参数真数组
    //url.replace(reg, (...arg) => {
    //    obj[arg[1]] = arg[2]
    //})
    return obj
}

2.for循环遍历

const strFormat = (url) => {
  if (typeof url === "string") url = url.split("?")[1] || "";
  if (typeof url === "string") url = url.split(/[&=]/);
  let r = {};
  for (let i = 0; i < url.length; i = i + 2) {
    if (url[i]) {
      r[url[i]] = url[i + 1];
    }
  }
  return r;
};

3.URLSearchParams

var url = "http://test.com/test?a=1&b=2&c=3&a=4"; 
//使用new URLSearchParams(url)获取不到第一个参数a;使用url.split('?')[1]分割之后能正常获取到
var params = new URLSearchParams(url.split('?')[1]);

//get方法可以获取到参数中的第一个a
console.log(url.split('?')[1], params.get('a')) //a=1&b=2&c=3  1

//getAll方法可以获取到参数中全部的a,返回的是一个数组
console.log(params.getAll('a')) //[1,4]

//has方法,可以判断url中是否包含某个参数
console.log(params.has('a')) //true

标签:URL,js,url,参数,split,arg,let,arguments
From: https://www.cnblogs.com/domin520Jian/p/18065911

相关文章

  • python json格式转url参数&分割, url参数转json格式
    前言全局说明一、json格式转url参数&分割>>>fromurllib.parseimporturlencode>>>params={'user':'admin','pwd':'123456'}>>>print(urlencode(params))二、url参数转json格式>>>importj......
  • 网站 url 跳转 刷新打不开 但回车能打开 刷新不能访问但回车 能访问
    可能是跨域问题,可以对比两个网址的curl参数,有一个缺少Referer:https://account.wps.cn/  例如:curl^"https://authserver.gdmu.edu.cn/authserver/login?service=https^%^3A^%^2F^%^2Fms.gdmu.edu.cn^%^2Floginwps^"^-H"Accept:text/html,application/xhtml+xml,applic......
  • fabricjs怎么添加网格线
    html文件:1<canvasid="c"width="600"height="400"></canvas>css文件:1canvas{2border:1pxsolidlightgrey;3} javascript文件1varcanvas=newfabric.Canvas('c',{2selection:false3});4v......
  • Dynamics CRM 2013 常用JS脚本
    Xrm.Page.data获取记录的主键Id的值(getId)varId=Xrm.Page.data.entity.getId();获取记录的表的逻辑名称(getEntityName)varentityName=Xrm.Page.data.entity.getEntityName();获取引用记录的查找值(getEntityReference)varerEntity=Xrm.Page.data.entity.getEnt......
  • ChatGLM-6B模型基于 P-Tuning v2 微调脚本参数解释
    1、地址:https://github.com/THUDM/ChatGLM-6B/blob/main/ptuning/README.md2、参数示例PRE_SEQ_LEN=128LR=2e-2CUDA_VISIBLE_DEVICES=0python3main.py\--do_train\--train_fileAdvertiseGen/train.json\--validation_fileAdvertiseGen/dev.json\......
  • jsPlumb导航器
    开源项目地址:https://gitee.com/easyxaf/jsplumb-navigator前言jsPlumb可用于连接DOM元素,它不依赖框架,所以与主流框架都可以无缝的集成。但比较遗憾的是社区版中没有平移、缩放等功能,如果用它来开发工作流等项目,用户体验会大打折扣。我的项目是用Blazor开发的,在比较了多款开源流......
  • CentOS8使用yum报错:Cannot prepare internal mirrorlist: No URLs in mirrorlist
    CentOS8使用yum报错:Cannotprepareinternalmirrorlist:NoURLsinmirrorlist报错信息:错误:为仓库'appstream'下载元数据失败:Cannotprepareinternalmirrorlist:NoURLsinmirrorlist 出现这个问题的原因是:在2022年1月31日,CentOS从官方镜像中移除CentOS8的所......
  • js 实现深拷贝/深复制
    //深拷贝constdeepClone=(obj)=>{vartarget={};for(varkeyinobj){if(Object.prototype.hasOwnProperty.call(obj,key)){if(typeofobj[key]==='object'){target[key]=deepClone(obj[key])......
  • C语言基础-3、函数的参数和变量
    一、函数原型1、函数先后关系ex1:#include<stdio.h>//像这样把Max()函数写在上面,是因为:C的编译器自上而下顺序分析你的代码intMax(inta,intb){ intret; if(a>=b){ ret=a; } else { ret=b; } returnret;}intmain(){ intmax; max=Max(1,2);......
  • Nestjs系列 Nestjs基础(四)
    Nest中的middlewaremiddware基础用法已经在Nest的AOP架构章节中存在。此次记录middleware的更详细用法新建项目,然后创建一个middleware模板nestgmiddlewaretest--no-spec--flat可以看到此时的req和res都是any,可以对其进行明确的类型标注,express就从......