使用JavaScript獲取url中的參數值

今天須要用到從url中獲取參數,在網上找了幾個JavaScript方法,mark下來。
 
一些能夠使用的去獲取url中指定的部分:如http://www.mystuff.com.cn/aboutus/
location    對象 含有當前URL的信息,屬性 href 整個URL字符串
protocol      含有URL第一部分的字符串,如http:
host       包含有URL中主機名:端口號部分的字符串.如//www.mystuff.com.cn/aboutus/
hostname   包含URL中主機名的字符串.如http://www.mystuff.com.cn
port        包含URL中可能存在的端口號字符串.
pathname    URL中"/"之後的部分.如~list/index.htm
hash           "#"號(CGI參數)以後的字符串
search      "?"號(CGI參數)以後的字符串 
 
第一種方法:使用split拆分(適用於單個參數)
function GetRequest() {
   var url = location.search; //獲取url中"?"符後的字串
   if (url.indexOf("?") != -1) {    //判斷是否有參數
      var str = url.substr(1); //從第一個字符開始 由於第0個是?號 獲取全部除問號的全部符串
      strs = str.split("=");   //用等號進行分隔 (由於知道只有一個參數 因此直接用等號進分隔 若是有多個參數 要用&號分隔 再用等號進行分隔)
      alert(strs[1]);          //直接彈出第一個參數 (若是有多個參數 還要進行循環的)
   }
}

  

第二種方法:使用split拆分(多個參數)
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;
}
// 這樣調用:
var Request = new Object();
Request = GetRequest();
// var 參數1,參數2,參數3,參數N;
// 參數1 = Request['參數1'];
// 參數2 = Request['參數2'];
// 參數3 = Request['參數3'];
// 參數N = Request['參數N'];

  

第三種方法:使用正則表達式javascript

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"));

  

參考博客:html

http://www.javashuo.com/article/p-rixcrjie-hq.htmljava

https://blog.csdn.net/zhang__ao/article/details/78614291正則表達式

http://www.javashuo.com/article/p-upgivlol-x.htmlurl

相關文章
相關標籤/搜索