简介
运用 js 的时候, 我们有时可能会有这样的需求, 就是想要获取浏览器地址栏指定的一项参数, 形如: https://i.cnblogs.com/EditPosts.aspx?postid=8628413&update=1,
你想要获取 postid 的内容 8628413, 或者 update 的内容 1, 那么下面就提供解决办法.
解决办法
其实解决办法也挺简单, 只要通过一个函数就可以处理掉
- // 当前 url 地址栏 file:///C:/Users/admin/Desktop/test.html?id=2
- function GetQueryString(name) {
- var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
- console.log(window.location.search)//?id=2
- var r = window.location.search.substr(1).match(reg);
- if (r != null) return unescape(r[2]);
- return null;
- }
- console.log(GetQueryString('id'))//2
上面函数的用法很简单, 只要把你想要的 url 参数传进去就可以拿到返回值, 注意参数为字符串
发散思维
上面的函数是直接解决了获取当前页面 url 中的参数, 有事我们可能不是想要处理 url, 而是想要获取特定字符串中的参数, 形如: postid=8628413&update=1
然后你想要获取 postid 的对应的值那么要怎么做呢?
只需要理解下上面函数的原理就很好改写了
- function GetQueryString(str,name) {
- var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
- //str = postid=8628413&update=1
- // 其实 str 就相当于 window.location.search.substr(1)
- var r = str.match(reg);
- if (r != null) return unescape(r[2]);
- return null;
- }
- console.log(GetQueryString('postid=8628413&update=1','postid'))
来源: http://www.bubuko.com/infodetail-2573991.html