Javascript获取url参数值

今天碰到要在一个页面获取另外一个页面url传过来的参数,一开始很本能的想到了用 split("?")这样一步步的分解出需要的参数。

后来想了一下,肯定会有更加简单的方法的!所以在网上找到了两个很又简单实用的方法,mark下

方法一:正则分析法

 

function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)""i");
var r = window.location.search.substr(1).match(reg);
if (r != nullreturn 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> 

----------------------------------------------------------------------------------------------------------------------------------------
/*
获取URL中最后一项参数的值
*/


var str=window.location.href;
//alert(str);
var es=/SouceID=/
es.exec(str); 
var right=RegExp.rightContext; 
//alert(right);
   
  //列子
    <script language="javascript"> 
    var str=window.location.href; 
    var es=/SouceID=/; 
    es.exec(str); 
    var right=RegExp.rightContext; 
    //alert(right);
    switch(right){
    case 'Din':
    case 'Exh':
    case 'Banks':
    case 'Shop':
    case 'Treat':
    case 'Trip':
         ChgTab('tab3','tabcontent3');
         break;
    case 'Air':
    case 'Railway':
    case 'Road':
    case 'Subway':
          ChgTab('tab2','tabcontent2');
          break;
   default:
         ChgTab('tab1','tabcontent1');
}
</script> 


//以下是函数的写法
function GetParam(){
    
var url = document.location.href;
    
var name=""
    
if (url.indexOf("=")>0)
    
{
        name 
= url.substring(url.indexOf("=")+1,url.length)
    }

    
return name;
}



/*
获取指定的URL参数值
URL:http://www.blogjava.net/blog?name=bainian
参数:paramName URL参数
调用方法:getParam("name")
返回值:bainian
*/

//1.
function getParam(paramName)
{
        paramValue 
= "";
        isFound 
= false;
        
if (this.location.search.indexOf("?"== 0 && this.location.search.indexOf("=")>1)
        
{
            arrSource 
= unescape(this.location.search).substring(1,this.location.search.length).split("&");
            i 
= 0;
            
while (i < arrSource.length && !isFound)
            
{
                
if (arrSource[i].indexOf("="> 0)
                
{
                     
if (arrSource[i].split("=")[0].toLowerCase()==paramName.toLowerCase())
                     
{
                        paramValue 
= arrSource[i].split("=")[1];
                        isFound 
= true;
                     }

                }

                i
++;
            }
   
        }

   
return paramValue;
}



//2.
function Request(sName)
{

  
/*
   get last loc. of ?
   right: find first loc. of sName
   +2
   retrieve value before next &
  
  
*/
  
  
var sURL = new String(window.location);
  
var sURL = document.location.href;
  
var iQMark= sURL.lastIndexOf('?');
  
var iLensName=sName.length;
  
  
//retrieve loc. of sName
  var iStart = sURL.indexOf('?+ sName +'=') //limitation 1
  if (iStart==-1)
        
{//not found at start
        iStart = sURL.indexOf('&+ sName +'=')//limitation 1
                if (iStart==-1)
                   
{//not found at end
                    return 0//not found
                   }   
        }

        
  iStart 
= iStart + + iLensName + 2;
  
var iTemp= sURL.indexOf('&',iStart); //next pair start
  if (iTemp ==-1)
                
{//EOF
                iTemp=sURL.length;
                }
  
  
return sURL.slice(iStart,iTemp ) ;
  sURL
=null;//destroy String
}
  
---------------------------------------------------------------------------------------------------------------------------------------- 
 比如一条url:http://127.0.0.1/index.html?id=999&type=2
那么在index.html中这样写就可以获得id和type的值
var id=$.query.get("id");  // id=999
var type=$.query.get("type");  // type=2
插件的代码如下:
http://blog.jiqila.com/post/164/ 
posted @ 2012-11-06 11:38  zagelover  阅读(253)  评论(0编辑  收藏  举报