
版权声明:本文为博主原创文章,未经博主允许不得转载。
- /**
- * 获取指定URL的参数值
- * @param url 指定的URL地址
- * @param name 参数名称
- * @return 参数值
- */
- function getUrlParam(url,name){
- var pattern = new RegExp("[?&]"+name+"\=([^&]+)", "g");
- var matcher = pattern.exec(url);
- var items = null;
- if(null != matcher){
- try{
- items = decodeURIComponent(decodeURIComponent(matcher[1]));
- }catch(e){
- try{
- items = decodeURIComponent(matcher[1]);
- }catch(e){
- items = matcher[1];
- }
- }
- }
- return items;
- }
当前URL:location.href
前一页面的URL:document.referrer
获取当前URL中参数name的值:getUrlParam(location.href,"name");
获取前一页面URL中参数name的值:getUrlParam(document.referrer,"name");
但是这种方式只能获取=后的一个值,如果有这样的URL:aaa.jsp?info=name=1;sex=2,对于这个URL,用上面的方法获取到的info的值是name,而实际上我需要获取到的是name=1;sex=2。
道理都一样,变换一下,用下面的方法:
- /**
- * 获取当前URL参数值
- * @param name 参数名称
- * @return 参数值
- */
- function getUrlParam(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;
- }
用这个得到的就是:name=1;sex=2