JS解析url链接和获得get参数的两种方法

JavaScript encodeURIComponent 实战:3个场景解析GET参数拼接与特殊字符处理 本文深入解析JavaScript中encodeURIComponent的实战应用,通过3个典型场景(表单提交、分享链接生成、API调用)演示如何正确处理GET参数拼接与特殊字符编码。详细对比encodeURI与encodeURIComponent的区别,提供安全可靠的URL构建方案,帮助开发者避免常见陷阱,确保Web应用的数据传输安全与可靠性。 阅读详情

代码已经关联到github: 链接地址 觉得不错可以顺手点个star,这里会持续分享自己的开发经验(:

解析url有两种方式,下面直接贴代码:

/**
 * 方法一:正则解析url
 * @param {String} url  eg:https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=baidu&wd=js&oq=js
 */
const parseUrl = (url) => {
  const reg = /(\w+):\/\/([\w\.]+)\:?(\d*)?([\/\.\w]*)?\??([^#]*)?#?(\S*)?/
  var mattchGroup = url.match(reg)
  const result = {}

  result.protocol = mattchGroup[1] //=>(\w+):\/\/ 
  result.host = mattchGroup[2] //=>([\w\.]+)\:? 
  result.port = mattchGroup[3] || 80 //(\d*)?
  result.path = mattchGroup[4] // ([\/\.\w]*)?
  result.query = mattchGroup[5] || '' //([^#]*)?
  result.hash = mattchGroup[6] || '' // (\S*)?

  return result
}


/**
 * 方法二:a标签解析url
 * @param {String} url  eg:https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=baidu&wd=js&oq=js
 */
const parseUrl2 = (url) => {
	let aDom = document.createElement('a')
	aDom.setAttribute('href',url)
  	 const result = {
		protocol: aDom.protocol,
		host: aDom.host,
		port: aDom.port || 80 ,
		path: aDom.pathname,
		query: aDom.search,
		hash: aDom.hash
	}
	aDom = null
	return result
}


解析查询参数也有两种方式:

/**
 * 方法一:正则获得查询参数
 * @param {String} urlQuery eg:   
 */
const parseQueryParams = (urlQuery) => {
    const params = {}
    urlQuery.replace(/([^?&=]+=[^&=]+)/g,function(_,k,v){
        params[k]=v
    })
    return params
}


/**
 * 方法二:分割方式获得查询参数
 * @param {String} urlQuery eg:   
 */
const parseQueryParams = (urlQuery) => {
  let params = {}
  const paramsGroup = urlQuery.split('&')
  for (let item of paramsGroup) {
    const paramsItemGroup = item.split('=')
    if (paramsItemGroup && paramsItemGroup.length > 0) {
      let paramValue = paramsItemGroup[1]
      paramValue = paramValue.replace(/%2B/gi,'+')
      paramValue = paramValue.replace(/%20/gi,' ')
      paramValue = paramValue.replace(/%2F/gi,'/')
      paramValue = paramValue.replace(/%3F/gi,'?')
      paramValue = paramValue.replace(/%25/gi,'%')
      paramValue = paramValue.replace(/%26/gi,'&')
      paramValue = paramValue.replace(/%3D/gi,'=')
      paramValue = paramValue.replace(/%23/gi,'#')
      params[paramsItemGroup[0]] = paramValue
    }
  }
  return params
}

CASIA数据集解析:图像篡改检测的黄金标准与实践指南 本文深入解析了CASIA数据集在图像篡改检测领域的核心价值与应用实践。作为中科院自动化所打造的黄金标准,CASIA数据集通过模拟真实篡改场景(如拼接和复制移动)为研究者提供全面支持。文章详细对比了v1.0与v2.0版本差异,分享数据预处理和模型训练的最佳实践,并探讨了未来研究方向,是图像篡改检测领域的重要参考指南。 阅读详情

相关推荐

Multisim 14.0元件库下载权威指南:官方与社区资源

详解Multisim元件库下载的官方途径与可靠社区资源,帮助用户快速获取Multisim 14.0所需元件模型,提升电路仿真效率。

weixin_32925455的博客 747

Js-使用URL对象获取GET参数

概述 一般我们自己从URL中分析和提取参数都是比较麻烦的, 所以为了防止无休止的重复造轮子, 大多数的浏览器都内置了URL对象。 有了URL对象我们就可以将URL参数很方便的解析出来。 用法 创建URL对象 创建URL对象要使用URL构造函数, URL对象接收一个url地址参数。 let u = new URL('https://blog.youkuaiyun.com/qq_45458749'); console.dir(u); // console.dir()输出对象的属性和方法 可以在控制台中看..

qq_45458749的博客 2998

SolidWorks有限元分析流程

对于很多专业,在进行设计完成后,为了缩短开发周期,往往需要配合仿真结果进行,机械行业更是如此。平时大家多采用专业有限元仿真软件进行仿真分析,如ANSYS;不过SolidWorks软件因为制图简单,同时存在专用的有限元仿真模块Simulation,对于初学者往往更加适用,下面简单介绍下SolidWorks Simulation仿真流程。 1. 分析流程 关键步骤如下: **(1)创建算例;**对模型的每次分析都是一个算例,一个模型可以包含多个算例。 **(2)应用材料;**指定模型的材料属性,如铝合金、钢材等

DYH_BK的博客 3万+

js 获取url的get传参

js可以使用字符串函数实现获取url的get传参 实现获取get传参的思路如下: 1:获取当前url 2:获取到?位置 3:将?后面的字符串截取出来获取到get传参信息 4:将截取出来的get传参信息进行处理获取到url的get参数 具体实现如下: //获取当前URL var url = document.location.href; //声明一个对象 var getRequest...

huaweichenai的博客 2238

手把手教你为STM32设备生成自定义MAC地址(基于芯片ID的5种算法对比)

本文详细介绍了基于STM32芯片ID生成自定义MAC地址的5种算法,包括直接截取、异或折叠、CRC32哈希、自定义混合运算及SHA-256摘要。通过对比分析各算法的计算复杂度、唯一性及适用场景,帮助嵌入式开发者根据项目规模与资源,选择最合适的方案,确保设备MAC地址的唯一性与合规性。

weixin_29170327的博客 527

32、高光谱遥感技术在军事领域的应用解析

高光谱遥感技术凭借其高分辨率和精细光谱分析能力,在军事领域广泛应用于战场详细侦察、伪装目标识别及目标实际温度与发射率的检测,显著提升了目标识别精度和作战支持能力。同时,该技术在内陆水体成分反演、海洋环境监测和农业管理等领域也展现出巨大潜力。尽管面临数据量大、处理复杂、技术融合不足和仪器性能限制等挑战,未来通过人工智能融合、高效算法研发和先进仪器开发,高光谱遥感技术将在多领域实现更深入应用与发展。

blue的专栏 229

获取url后的参数

获取url后的参数 var name = window.document.location.href.toString(); GetQueryString(name) var hostid = GetQueryString('deviceid');//deviceid为要获取的内容的key function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); va

m0_46495397的博客 265

【100%通过率】2023华为od机试C卷【围棋的气】Python 实现

围棋棋盘由纵横各19条线垂直相交组成,棋盘上一共19 x 19 = 361 个交点,对奔双方一方执白棋,一方执黑棋,落子时只能将棋子置于交点上。 “气”是围棋中很重要的一个概念,某个棋子有几口气,是指其上下左右方向四个相邻的交叉点中,有几个交叉点没有棋子,由此可知:

MISAYAONE的博客 1858

JS获取url请求参数,代码如下:

JS获取url请求参数

chenrui310的博客 454

回归预测 | MATLAB实现MPR多元多项式回归

回归预测 | MATLAB实现MPR多元多项式回归

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 1645

YOLOv8改进 | 注意力篇 | YOLOv8引入EMAttention(EMA)注意力

具体来说,除了对全局信息进行编码以重新校准每个并行分支中的通道权重之外,还通过跨维度交互来进一步聚合两个并行分支的输出特征,以捕获像素级的成对关系。3. 跨空间学习:除了在每个并行子网络中建立局部的跨通道交互外,EMA模块还通过跨空间学习方法融合了两个并行子网络的输出特征图。到此本文的正式分享内容就结束了,在这里给大家推荐我的YOLOv8改进有效涨点专栏,后期我会根据各种最新的前沿顶会进行论文复现,也会对一些老的改进机制进行补充,如果大家觉得本文帮助到你了,订阅本专栏,关注后续更多的更新~

tsg6698的博客 895

提取URL中的各个GET参数

提取URL中的各个GET参数提取get参数,以对象的形式打包输出第一种方法 此处的url是当前窗口的网址时 利用BOM里的location来封装第二种 它是一个自定义好的字符串,不是当前窗口的url 提取get参数,以对象的形式打包输出 例如http://item.taobao.com/item.htm?name=xiaoming&sex=boy&age=18&weight...

qq_36245314的博客 2111

【AI面试】 Python 的装饰器

Python装饰器是一种高阶函数,用于在不修改原函数代码的情况下增强其功能。它通过@语法糖接收目标函数作为参数,并返回一个包含额外逻辑(如日志、缓存、权限验证等)的新函数。装饰器的核心价值在于代码复用和解耦,符合开闭原则,典型应用包括性能分析、权限控制等场景。例如,@timer_decorator可自动为函数添加耗时统计功能。本质上,@decorator等价于func = decorator(func),实际调用的是装饰器返回的包装函数。进阶技巧包括使用@functools.wraps保留原函数元信息。装饰

钱多多先森 183

js获得页面get跳转的参数

通过js获得页面跳转参数 页面通过window.location.href或通过window.parent.location.href进行页面跳转,在新的页面如何获得相应的参数呢? window.location.href方式 其中去除“#”号是因为url参数中还添加了#的参数。 function GetRequest(name) { var url = window.location.s...

程序新视界 3281

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

传url链接参数 前端get方法_运用Javascript获取url传递参数之方法

在JS学习中,如何获取url传递参数也是比较基本的课程。当然方法有很多,我们至少需要掌握1-2种。一、正则分析法。(我较喜欢使用正则)代码如下:functionGetQueryString(name){varreg=newRegExp(“(^|&)”+name+“=([^&]*)(&|$)”,”i”);varr=window.location.se...

weixin_30668061的博客 625

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

传url链接参数 前端get方法_js 页面截取url传递的参数(前端页面跳转传参)

引用链接我用的/*js 页面截取url传递的参数*//*var url = window.location.href; //获取当前窗口的Url; 结果:http://localhost:61768/Home/Index?id=2&age=18var host = window.location.host;//获取当前窗口的主机名; 结果:localhost:61768var por...

weixin_39821330的博客 959

java js请求参数_获取请求参数的方法 js如何获取请求中的url以及参数

javascript中怎么获取请求的参数?通过使用window.location.search可以获取到当前URL的?号开始的字符串,如前面的链接获取到的search为?id=001,再对获取的字符串进行处理,就可以获取到参数的值了,参考代码如下: function getUrlParam(name) { var reg = new RegExp("(^|&)" +如何遍历HttpServ...

weixin_35975197的博客 1129

javascript获取指定链接GET参数函数

获取 Iframe  父页面函数 //获取父页面完整URL function parentUrl(){ var isInIframe = (parent !== window), parentUrl = null; if (isInIframe) { parentUrl = document.referrer; } return parentUr

知识改变命运 359

传url链接参数 前端get方法_前端url传递编码问题

十六进制值1. + URL 中+号表示空格 %2B2. 空格 URL中的空格可以用+号或者编码 %203. / 分隔目录和子目录 %2F4. ? 分隔实际的 URL 和参数 %3F5. % 指定特殊字符 %256. # 表示书签 %237. & URL 中指定的参数间的分隔符 %268. = URL 中指定参数的值 %3D解决的方法:replace() 方法如果直接用str.replace...

weixin_28256233的博客 1410

传url链接参数 前端get方法_获取url中参数的方法getUrlParams(url)

/***@authorwuwg*@createTime2019.08.13*@modulegetUrlParams*@description获取url中的参数,可以*@param{String}url一个url地址,可以不传,默认会取window.location.href*@returns{*}返回一个对象*/functiongetUrlParams(url){...

weixin_42613018的博客 1076

JavaScript中GET和POST对比

HTTP 是基于 TCP/IP 的关于数据如何在万维网中如何通信的协议。HTTP 的工作方式是客户端与服务器之间的请求-应答协议。

m0_53193630的博客 2411

GET和POST参数获取方式

POST请求的数据放在HTTP请求体(body)中,服务器解析后存储在。:GET请求的数据通过URL参数传递,服务器解析后存储在。:混淆Request()和Request.Form():用GET传递敏感数据。:用POST做查询操作。

m0_46322965的博客 978

如何通过JS获取URL携带的参数

获取URL参数思想 要想获取当前页面携带的URL参数,首先要获取到当前页面的地址,我们可以通过location.search来获得。取到URL地址后,可以根据&进行数据拆分,拆分出一共有多少个参数,然后再根据=获得参数的值。本文将通过JS来获取当前访问页面所携带的参数。 获取URL携带参数实例 getUrlParamValue = function (name) { if (name ...

乔的博客 1677

js中url参数和obj互转的方法

function objToParam(a) { var s = [], rbracket = /\[\]$/, isArray = function(obj) { return Object.prototype.toString.call(obj) === '[object Array]'; }, add = function(k, v) { v = typeof v === 'func

myWorld001的博客 1051

purl.js性能优化技巧:提升URL解析效率的5个方法

purl.js是一款轻量级的JavaScript URL解析工具,能够帮助开发者轻松提取URL中的协议、主机、路径、查询参数等关键信息。在处理大量URL或高频解析场景时,优化purl.js的性能可以显著提升应用响应速度。本文将分享5个实用的purl.js性能优化技巧,帮助你高效处理URL解析任务。 ## 1. 选择合适的解析模式:严格模式vs宽松模式 purl.js提供两种解析模式:严格模式(

gitblog_00672的博客 938

获取get访问时url链接后面跟的参数

function GetRequest() {                 var url = location.search; //获取url中"?"符后的字串                   console.log(url);                 var theRequest = new Object();                 if(url.indexOf("?...

qq_40924516的博客 1432

100 js js解析url地址获取参数

1.js解析url地址获取参数 一、字符串分割分析法。 这里是一个获取URL带REQUESTRING参数的JAVASCRIPT客户端解决方案,相当于asp的request.querystring,PHP的$_GET,jsp的request.getParameter //var USERCODE=""; //以上是用request.getParameter在浏览器端获取参数值, 也可以是用该

fancivez的专栏 562
上一篇: 如何获得iframe内部的body和其他元素
下一篇: JavaScript中的this指向全解析
Qssn丶
博客等级 码龄11年 88粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值