2012-02-11 150 views
1

比方說,我有以下網址:如何獲得網址參數的JavaScript

something.com/messages/username/id 

我怎樣才能獲得usernameid

+0

您可以分割,像其他人解釋,但有一間酒吧網址作爲最後一個字符becareful,那麼分裂會返回一個空字符串作爲最後一個項目。要(如果存在)刪除它,你可以使用MYSTRING.replace(/ \/$ /, ''); – 2012-02-11 16:30:35

+0

@NiklasB。除去:) – Devjosh 2012-02-11 16:35:24

+0

@EliseuMonar:您可以簡單地使用正索引(從一開始)。有什麼問題?如果網址末尾有斜線,我在這裏看到的所有解決方案也可以正常工作。 – 2012-02-11 16:43:01

回答

3

其實我只是不得不面對的一天。當您訪問某些頁面的緩存版本時,查詢字符串實際上是URL路徑的一部分。但是,如果您嘗試避免緩存,則使用查詢字符串。

鑑於從How to get the value from the GET parameters?的答案之一,這是我用來部分正常化訪問。

接受迴應的路由器_.isArray()(我們建立在主幹之上,所以我們有下劃線可用)並處理以不同方式將數據拉出對象或數組。

slice最後擺脫了兩個"",因爲我們沒有使用文檔,只有目錄和我們的URL以/開頭和結尾。如果您正在查找文檔訪問權限,則應相應地更改slice

var qs = function(){ 
    if(window.location.search){ 
     var query_string = {};    
     (function() { 
      var e, 
       a = /\+/g, // Regex for replacing addition symbol with a space 
       r = /([^&=]+)=?([^&]*)/g, 
       d = function (s) { return decodeURIComponent(s.replace(a, " ")); }, 
       q = window.location.search.substring(1); 

      while (e = r.exec(q)){ 
       query_string[d(e[1])] = d(e[2]); 
      } 
     })(); 
    } else { 
     return window.location.pathname.split('/').slice(1, -1); 
    } 
    return query_string; 
}; 
8

您可以使用String.split爲:

var parts = window.location.href.split('/'); # => ["http:", "", "something.com", "messages", "username", "id"] 
var username = parts[4]; 
var id = parseInt(parts[5]); 
3

你可以在這樣的每一個 '/' 字符分割你的網址:

var url = "something.com/messages/username/id"; 
var array = url.split('/'); 
// array[2] contains username and array[3] contains id 
4

我想你可以使用window.location.href來獲取URL然後string.split()的網址爲/

var urlParts = window.location.href.split("/"); 
var username = urlParts[4]; 
var id = urlParts[5]; 
+0

爲什麼選擇投票? – 2012-02-11 16:31:42