-
2016-03-28 19:55:13
获取url参数主要有两种方法
第一种是利用字符串的分割方法,将url以“&”和“=”做分割,得到参数数组,然后再利用数组的迭代方法中的filter()方法,筛选并返回我们需要的数据。
function GetQueryString(name) { //获取url中“?”后边的部分,并将结果以“&”分割成数组 var paras = url.split('?')[1].split('&'); //遍历数组中是否有满足参数条件的数组项 var result = paras.filter(function(item,index,para){ return(item.split('=')[0] == name); }); //如果有满足条件的,则将数组项中的value值返回 if(result){ return (result[0].split('=')[1]); } }
第二种方法是利用正则表达式,正则表达式的方法就要比上边的方法看起来要简洁很多。借助这个方法,自己也学习了一些正则表达式的应用。
首先,(^|&)这里边的 ^ 表示的是匹配项是以 ^ 后边跟随的字符开头的,如果是(^&),那么匹配项的第一个字符必须是&,这里在中间加了一个 | (或)运算符,表示 & 可以有,也可以没有。function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)","i"); var r = "aa=22&bb=12".match(reg); if (r!=null) return (r[2]); return null; }
参数name后面就是要获取的值,第一个括号里边有一个中括号,中括号里边的表示要匹配的值。
“*”表示匹配前边中括号里边的内容0次或多次(”+“表示一次或多次,”?“表示0次或1次)。
”^&“的意思是匹配开头不是”&“的内容。
第二个括号里的就是在结尾处匹配”&“或者”$“符号,这里如果没有这两个符号结尾也能够正常返回前边所匹配到的内容。
另外一种正则表达式的方法是:
var arr = url.match(/\w+=\w+/gi);
这样得出的结果是各项参数组成的数组,然后再利用数组的迭代方法去处理就好了。
\w 表示大小写字母,数字,下划线
----------------------------------------------------3月29日更新-----------------------------------------------------------------------
今天看《javascript高级程序设计》中的bom章节,讲到了通过location对象获取字符串参数的方法,其中有decodeURLComponent()方法对查询字符串解码,觉得应该记录一下。
function getQueryStringArgs(){ //获取查询字符串,并截掉问号 var qs = (location.search.length>0?location.search.substring(1):""), //存储结果的对象 args = {}, //分割获取到的字符串,去到每一对值,并放进数组 items = qs.length?qs.split("&"):[], item = null, name = null, value = null, i = 0, len = items.length; for(i = 0; i < len; i++){ item = items[i].split("="); name = decodeURIComponent(item[0]); value = decodeURIComponent(item[1]); if(name){ args[name] = value; } } return args; } <p> </p>
更多相关内容 -
JavaScript获取URL参数的方法之一
2020-10-20 03:46:03本文主要介绍了JavaScript获取URL参数的方法。具有很好的参考价值。下面跟着小编一起来看下吧 -
使用jquery获取url以及jquery获取url参数的实现方法
2020-11-22 20:08:44使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作 1、jquery获取url很简单,代码如下 [removed].href; 其实只是用到了javascript的基础的window对象,并没有用jquery的知识 2、jquery获取url... -
JS获取URL中参数值(QueryString)的4种方法分享
2020-10-26 01:45:10今天碰到要在一个页面获取另外一个页面url传过来的参数,一开始很本能的想到了用 split("?")这样一步步的分解出需要的参数。后来想了一下,肯定会有更加简单的方法的!所以在网上找到了几个很又简单实用的方法,mark... -
nodejs实现获取当前url地址及url各种参数值
2020-10-24 00:47:37主要介绍了nodejs实现获取当前url地址及url各种参数值,本文直接给出代码实例,需要的朋友可以参考下 -
Java如何实现URL带请求参数(get/post)及得到get和post请求url和参数列表的方法
2020-09-03 06:12:44本文给大家介绍Java如何实现URL带请求参数(get/post)及得到get和post请求url和参数列表的方法,涉及到java获取post请求参数的方法,感兴趣的朋友一起看看吧 -
JS实现获取当前URL和来源URL的方法
2020-10-21 16:21:22主要介绍了JS实现获取当前URL和来源URL的方法,涉及javascript针对页面document属性操作的相关技巧,需要的朋友可以参考下 -
javascript获取url上某个参数的方法
2020-10-26 17:43:51获取url上的某个参数的方法有很多,在本文为大家介绍下使用javascript是如何实现的,感兴趣的朋友不要错过 -
Spring MVC url提交参数和获取参数
2020-08-30 21:48:04本文重要讲述通过url提交参数和获取参数的具体操作与实现。具有很好的参考价值。下面跟着小编一起来看下吧 -
ASP.NET实现MVC中获取当前URL、controller及action的方法
2021-01-01 19:15:47本文实例讲述了ASP.NET实现MVC中获取当前URL、controller及action的方法。分享给大家供大家参考,具体如下: URL的获取很简单,ASP.NET通用: 【1】获取 完整url (协议名+域名+虚拟目录名+文件名+参数) string ... -
Javascript 获取链接(url)参数的方法
2020-10-30 02:10:48Javascript 获取链接(url)参数的实现方法 -
javascript提取URL的搜索字符串中的参数(自定义函数实现)
2020-10-27 17:44:23我们经常会看到有的页面链接地址后面会跟有参数,很多时候我们需要获得这些参数的值,接下来将介绍获取方法,感兴趣的朋友可以了解系,希望本文对你有所帮助 -
JavaScript重定向URL参数的两种方法小结
2020-10-21 07:02:13关于JavaScript重定向URL参数的实现方法网站有很多,这篇文章的主要内容是从网上查找,并进行了修改,简单粗暴的实现使用JavaScript重置url参数,文中给出了详细的示例代码和调用代码,对大家的理解和学习很有帮助,... -
JavaScript获得url查询参数的方法
2020-10-23 23:59:17主要介绍了JavaScript获得url查询参数的方法,可实现针对URL中参数分析的功能,需要的朋友可以参考下 -
js中将URL中的参数提取出来作为对象的实现代码
2020-10-28 10:07:00将URL中的参数提取出来作为对象的实现代码,适合希望获取url参数的朋友。 -
实现一个从url上获取query参数简单函数
2019-09-04 17:56:04实现一个从url上获取query参数简单函数function getQueryData() { let params = new URLSearchParams(location.search.replace(/\?/ig, "")); let data = {} for(let index of params){ data[index[0]] = index[1] || '' } return data; } 例如:网址为“http://xx.xx.com/?a=1&b=2&c=3” getQueryData() //{a: "1", b: "2", c: "3"}
注意:IE浏览器不支持,可以用在微信公众号开发中
-
三种方法实现:获取 url 中的参数
2018-08-29 16:57:18获取 url 中的参数 1. 指定参数名称,返回该参数的值 或者 空字符串; 2. 不指定参数名称,返回全部的参数对象 或者 {}; 3. 如果存在多个同名参数,则返回数组 ; 题目来源(在线编辑):...获取 url 中的参数
1. 指定参数名称,返回该参数的值 或者 空字符串;
2. 不指定参数名称,返回全部的参数对象 或者 {};
3. 如果存在多个同名参数,则返回数组 ;题目来源(在线编辑):www.nowcoder.com/practice/a3…(牛客网)
解一:使用字符串拼接匹配字符;
/* 获取URl中的参数 * @para url * @para key 参数名*/ function getUrlParam(sUrl, sKey) { var left= sUrl.indexOf("?") + 1 var right= sUrl.lastIndexOf("#") var parasString = sUrl.slice(left, right) var paras = parasString.split('&'); var parasjson = {} paras.forEach(function (value, index, arr) { var a = value.split('='); parasjson[a[0]] !== undefined ? parasjson[a[0]] = [].concat(parasjson[a[0]], a[1]) : parasjson[a[0]] = a[1]; }); let result = arguments[1] !== void 0 ? (parasjson[arguments[1]] || '') : parasjson; return result }复制代码
解二:使用正则表达式匹配字符,并使用正则Replace方法替换;
function getUrlParam2(sUrl, sKey) { var result, Oparam = {}; sUrl.replace(/[\?&]?(\w+)=(\w+)/g, function ($0, $1, $2) console.log('$0:' + $0 + " $1:" + $1 + " $2:" + $2); Oparam[$1] === void 0 ? Oparam[$1] = $2 : Oparam[$1] = [].concat(Oparam[$1], $2); }); sKey === void 0 || sKey === '' ? result = Oparam : result = Oparam[sKey] || ''; return result; }复制代码
此处注明正则:/[\?&]?(\w+)=(\w+)/g(使用Regexper在线工具将正则转成可视化的图形,简单易懂)
解三:使用正则表达式匹配字符,并使用正则Exec方法进行组装;
function getUrlParam3(sUrl, sKey) { var resObj = {}; var reg = /(\w+)=(\w+)/g; while (reg.exec(sUrl)) { resObj[RegExp.$1] ? resObj[RegExp.$1] = [].concat(resObj[RegExp.$1], RegExp.$2) : resObj[RegExp.$1] = RegExp.$2; } if (sKey) { return (resObj[sKey] ? resObj[sKey] : ''); } return resObj; }复制代码
此处注明正则:/(\w+)=(\w+)/g
MDN RegExp exec 方法API:developer.mozilla.org/zh-CN/docs/…
测试:
let url = 'http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe' let result = getUrlParam(url) let result2 = getUrlParam(url, 'key') console.log(result) console.log(result2)复制代码
控制台输出结果如图:
AC!!!
作者:立志搬砖造福生活
链接:https://juejin.im/post/5b84bff9f265da437e4d86c9
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 -
封装一个方法:把URL参数解析为一个对象,来获取地址栏url里面的传递的参数
2019-10-06 11:42:20URL参数解析 //获取url方法 //window.location.href // function getUrlkey(url){ var params = {}, arr = url.split("?"); if (arr.length <= 1) return params; arr = arr[1].split("&"); for(...URL参数解析
//获取url方法 //window.location.href // function getUrlkey(url){ var params = {}, arr = url.split("?"); if (arr.length <= 1) return params; arr = arr[1].split("&"); for(var i=0, l=arr.length; i<l; i++){ var a = arr[i].split("="); params[a[0]] = a[1]; } return params; } var url = "http://www.chenwenbo.info?key0=0&key1=1&key2=2", ps = getUrlkey(url); console.log(ps["key1"]);
-
js获取url传值的方法
2020-10-23 03:26:13主要介绍了js获取url传值的方法,实例分析了字符串分割与正则分析两种方法,并补充了一个基于正则匹配实现的js获取url的get传值函数,需要的朋友可以参考下 -
Javascript 获取链接(url)参数的方法[正则与截取字符串]
2020-10-29 09:13:39有时我们需要在客户端获取链接参数,一个常见的方法是将链接当做字符串,按照链接的格式分解,然后获取对应的参数值。本文给出的就是这个流程的具体实现方法。 -
Django框架实现逆向解析url的方法
2021-01-20 05:00:30有客户端的浏览器发起一个url请求,Django根据URL解析,把url中的参数捕获,调用相应的试图,获取相应的数据,然后返回给客户端显示 ②. 通过一个视图的名字,再加上一些参数和值,逆向获取相应的URL 第一个就是... -
实现一个方法,获取url的参数值,同名参数如有多个值则合并成一个数组:
2017-08-17 07:00:32输入示例:getUrlParam("http://www.nowcoder.com?test=yes&key=1&key=2&key=3#title","key") 输出示例:["1","2","3"] -
使用JS准确获取URL网址中参数的几种方法
2017-02-03 13:47:26(新年第一天上班)今天就遇到这样一个问题,简单描述就是需要从URL中获取所传递的参数。如果使用后台语言我们都会有很多中方法来获取,但是网站的中的所有数据都是通过AJAX进行传递的,所以需要使用JS进行获取参数... -
url地址数据参数转化JSON对象(js三种方法实现)
2020-12-23 02:34:48当我们用get方法提交表单时,在url上会显示出请求的参数组成的字符串,例如:http://localhost:3000/index.html?phone=12345678901&pwd=123123,在服务器端我们要获取其中的参数来进行操作,这种情况下,就要对... -
springBoot +netty实现websocket支持URL参数
2021-12-23 21:27:15springBoot +netty实现websocket支持URL参数 需求如下: 1:通过url(ws://ip:端口/?sid=xxxxxxx)形式连接websocket,并且发送数据(自己下面设置的端口,我下面设置端口是8888) 2:每次发送的数据有可能是1M以上。... -
封装获取一个URL地址问号后面传递的参数信息以及哈希值HASH 方法
2019-07-26 21:28:02封装 获取一个URL地址问号后面传递的参数信息 以及 哈希值 HASH 方法 <白话文> 最 low的方法实现 这是最终我们要拿到的结果 结果:{ lx:1, name:'zhufeng', teacher:'aaa', HASH:'box' } 最终我们...