js解析url参数
1、采用正则,这也是现在使用最为方便的
function getQueryString(name) {
const reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
const urlObj=window.location;
var r =urlObj.href.indexOf('#')>-? urlObj.hash.split("?")[].match(reg) : urlObj.search.substr().match(reg);
if (r != null) return unescape(r[]); return null;
}
首先是定义一个正则,将传入的参数传入其中。
然后就是window.location.search,search()是查找字符串指定的字符,默认返回第一个字符的位置,如果没有则返回-1,不过这里的search却不是这样使用的,我们把window.location打印出来看一下

很明显window.location是一个对象,其中search是它的一个属性,对应的是href中?及以后的字符。
然后就是substr(1),substr(index,num)是截取从index开始数量为num的字符,index是必须的,num不填的情况下默认返回之后所有的,所以substr(1)就是返回?以后的字符
math()用来返回字符串匹配的结果,如果找到了就返回数组,在加g的全局情况下,返回所有结果,在没有全局的情况下返回[匹配文本、文本相关信息]以及两个属性index就是找到的位置,input就是用来查找的字符串。
最后就是返回查找到的相关信息,不过为什么是match返回数组的第三个数,还不是很懂,有人懂话可以交流一下。非常感!
2、利用循环
function GetRequest() {
var url = location.search; //获取url中"?"符后的字串
var theRequest = new Object();
if (url.indexOf("?") != -) {
var str = url.substr();
strs = str.split("&");
console.log(strs)
for(var i = ; i < strs.length; i ++) {
theRequest[strs[i].split("=")[]]=unescape(strs[i].split("=")[]);
}
}
return theRequest;
}
首先就是跟正则一样,获取“?”及之后的字符,然后就是创建一个新的对象用来存储一会解析的字符信息,然后就是利用“&”将其分割为数组开始循环,再将其个根据“=”进行切割,并将其设为在之前新建对象的属性。最后返回对象就可以了。
js解析url参数的更多相关文章
- JS解析URL参数为对象
曲不离口,拳不离手 JS小编程练习之一:解析URL参数为对象 url:http://www.baidu.com/we/index.html?id=098&aaa=123&ccc=456 ...
- js解析url参数如http://www.taobao.com/index.php?key0=21&key1=你哈&(获取key0和key1的值)
function parseQueryString(url) { var pos; var obj = {}; if ((pos = url.indexOf("?")) != -1 ...
- 正则表达式解析url参数
解析url参数正则:(?<=\?|&)[\w\={}\\\\,-:'\s'""]*(?=[^#\s]|) 意思是(?<=\?|&) 从?或&符号 ...
- js获取url参数的方法
js获取url参数的方法有很多. 1.正则分析 function getQueryString(name) { var reg = new RegExp("(^|&)" + ...
- get方法与post方法的区别与js获取url参数的方式
1.get方法与post方法的区别: 区别一:get重点在从服务器上获取资源,post重点在向服务器发送数据:区别二:get传输数据是通过URL请求,以field(字段)= value的形式,置于UR ...
- js获取url参数,操作url参数
function getParam(key) { var tmp = location.search; tmp = decodeURIComponent(tmp); var index = tmp.i ...
- jQuery 解析 url 参数
应用场景: 三毛:我现在拿到一个 url 地址(https://www.google.com/search?dcr=&ei=5C&q=param),我现在要获取 location.se ...
- js javascript 获取url,获得当前页面的url,静态html文件js读取url参数
获得当前页面的url window.location.href 静态html文件js读取url参数 location.search; //获取url中"?"符后的字串 下边为转载的 ...
- js获取url参数的两种方法
js获取参数,在以前我都是用正在去拆分,然后获取,这种方式感觉是最简单的 方式1: function QueryString(item) { var sValue=location.search.ma ...
随机推荐
- PS 滤镜— —水波效果
clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); I=imread ...
- PHP 流程控制
流程控制 if, else, elseif $a = 5; $b = 9; if ($a > $b): echo "a is bigger than b"; elseif ( ...
- 【Lintcode】135.Combination Sum
题目: Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C ...
- ScikitLearn 学习器类型
源自在线课程的学习:http://www.studyai.com/course/detail/d086826e9be84b818f9c54893633663d
- Python调试指南
http://blog.sina.com.cn/s/blog_a15aa56901017u0p.html http://www.cnblogs.com/coderzh/archive/2009/12/ ...
- P1417烹调方案——背包问题中的排序
题目:https://www.luogu.org/problemnew/show/P1417 与普通的01背包不同的一点是加入物品的顺序对结果有影响,这里可以考虑贪心的想法,把对全局影响最小的物品排在 ...
- poj1456Supermarket——并查集压缩查找
题目:http://poj.org/problem?id=1456 排序+贪心,每次选利润最大的,放在可能的最靠后的日期卖出,利用并查集快速找到下一个符合的日期. 代码如下: #include< ...
- 湖南程序设计竞赛赛题总结 XTU 1237 Magic Triangle(计算几何)
这个月月初我们一行三人去湖南参加了ccpc湖南程序设计比赛,虽然路途遥远,六月的湘潭天气燥热,不过在一起的努力之下,拿到了一块铜牌,也算没空手而归啦.不过通过比赛,还是发现我们的差距,希望这几个月自己 ...
- Windows WMIC命令使用详解2
Windows WMIC命令使用详解(附实例) https://blog.csdn.net/aflyeaglenku/article/details/77878525 第一次执行WMIC命令时,Win ...
- 如何开发一个直播APP
一.个人见解(直播难与易) 直播难:个人认为要想把直播从零开始做出来,绝对是牛逼中的牛逼,大牛中的大牛,因为直播中运用到的技术难点非常之多,视频/音频处理,图形处理,视频/音频压缩,CDN分发,即时通 ...