js获取url参数值
来源:互联网 发布:网络推广运营公司 编辑:程序博客网 时间:2024/06/16 14:37
转自:http://www.cnblogs.com/jiekk/archive/2011/06/28/2092444.html
2.我觉得方法二有问题。
今天碰到要在一个页面获取另外一个页面url传过来的参数,一开始很本能的想到了用 split("?")这样一步步的分解出需要的参数。
后来想了一下,肯定会有更加简单的方法的!所以在网上找到了两个很又简单实用的方法,mark下
方法一:正则分析法
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
}
这样调用:
alert(GetQueryString("参数名1"));
alert(GetQueryString("参数名2"));
alert(GetQueryString("参数名3"));
方法二:
<span style="font-size: 16px;"><Script language="javascript">function GetRequest() { var url = location.search; //获取url中"?"符后的字串 var theRequest = new Object(); if (url.indexOf("?") != -1) { var str = url.substr(1); strs = str.split("&"); for(var i = 0; i < strs.length; i ++) { theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]); } } return theRequest;}</Script></span>
这样调用:
<Script language="javascript">
var Request = new Object();
Request = GetRequest();
var 参数1,参数2,参数3,参数N;
参数1 = Request['参数1'];
参数2 = Request['参数2'];
参数3 = Request['参数3'];
参数N = Request['参数N'];
</Script>
补充:
1.小弟学的不够深入,不知道RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");这个正则表达式的表示什么意思。
答:
2.我觉得方法二有问题。
如果URL后面参数只有一个比如localhost/index.html?id=1
if (url.indexOf("?") != -1) 这个就会出问题。
我改了下,代码如下:
3.我对方法做了一点点的修改,因为我的业务中url中参数的值为一段html代码片段,所以最后返回的值,是这段html片段,因此我修改了,希望有需要的参照:if (url.indexOf("?") != -1) 这个就会出问题。
我改了下,代码如下:
function GetRequest() { var url = location.search; //获取url中"?"符后的字串 var theRequest = new Object(); if (url.indexOf("?") != -1) { var str = url.substr(1); if (str.indexOf("&") != -1) { strs = str.split("&"); for (var i = 0; i < strs.length; i++) { theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]); } }else { theRequest[str.split("=")[0]] = unescape(str.split("=")[1]); } } return theRequest;}
function getUrlRequest(){ var url = location.search; //获取url中"?"符后的字串 var theRequest = new Object(); if (url.indexOf("?") != -1) { var str = url.substr(1); if (str.indexOf("&") != -1) { strs = str.split("&"); for (var i = 0; i < strs.length; i++) { theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]); } }else { var key = str.substring(0,str.indexOf("=")); var value = str.substr(str.indexOf("=")+1); theRequest[key] = decodeURI(value); } } return theRequest; }
1 0
- js获取url参数值
- js获取url参数值
- js获取url参数值
- js获取url参数值
- js获取url参数值
- js获取url参数值
- js获取url参数值
- js获取url参数值
- js获取url参数值
- js获取url参数值
- js获取url参数值
- js获取url参数值
- js获取url参数值
- js获取url参数值
- js获取url参数值
- js获取url参数值
- js获取url参数值
- js获取url参数值
- 关于SSH整合时要用的一些模板
- 在调用支持可变参数格式化的函数时的一个很掩蔽问题
- C++ 习题 输出日期时间--友元函数
- Light OJ 1047
- Spring BeanFactory实例化Bean的过程
- js获取url参数值
- (Java)冒泡排序
- AFNetwork 2.0在请求时报错code=-1016 和 3840
- 第一篇博文——测试一下
- 股票行情数据获取总结
- 记录
- 搭建Android开发环境(附下载链接)
- 嚎赂秃荚滦簧亢柏现脊土速床囤尚
- 悸柏僚赜抑颗我倘德然窃窃椅幢滋
以&开始或直接以name开始
以&结束或直接结束
name的值是由0到多个不是&的字符组成!!
"i"是忽略大小写!