2017-02-20 71 views
1

嗨我知道如何使用下面的JavaScript存儲URL參數,但有沒有辦法在斜槓後面存儲每個單詞。如何存儲的URL和單獨的每個單詞

例子:我有網址: http://localhost:9000/Database/Users/username/passwordReset?key=123214asdas2321

比方說,我想存儲從上述網址的「用戶名」,任何幫助將不勝感激。 謝謝。

的JavaScript:

window.onload = function() { 
       var url = document.location.href, 
        params = url.split('?')[1].split('&'), 
        data = {}, tmp; 
       for (var i = 0, l = params.length; i < l; i++) { 
        tmp = params[i].split('='); 
        data[tmp[0]] = tmp[1]; 
       } 
       var wordKey = data.key; 
      } 

回答

1

嘗試用正則表達式?

這就是你想要的嗎?

var url = 'http://localhost:9000/Database/Users/randomusername/passwordReset?key=123214asdas2321', 
 
regexp = /\/Users\/([^/]+)/, 
 
result = url.match(regexp); 
 

 
console.log(result[1]);

+0

是的我想要那部分的網址 – Nancy

+0

真棒讓我試試並拿回@Steeve – Nancy

+0

這不適用於'http:// localhost:9000/Database/Users/randomusername',因爲它沒有斜槓後用戶名。使用'match('/ Users /([^ /] +)')'效果更好! – Aloso

1

function getUsername(url) { 
 
    var split = url.split("/"); 
 
    for (var i = 1; i < split.length; i++) { 
 
    if (split[i - 1] === "Users") return split[i]; 
 
    } 
 
}
Enter url:<br> 
 
<input type="text" style="width: 500px" 
 
    onkeyup="console.log(getUsername(this.value));"/>

+0

謝謝你嘗試所有可能的方法後肯定會回來。 – Nancy

1

的邏輯是類似的。而不是用'?'使用split()或'&',則可以使用'/'。你可以嘗試這樣的:

function getUrlArray(url){ 
    var idx = str.indexOf('?'); 
     if (idx > 0) { 
      str = str.substring(0,idx); 
     } 
    var strArray = str.split('/'); 
    return strArray; 
} 

通過上面的代碼,你會得到一個url層次參數數組。請記住,位置0將始終是主要地址(,即www.anything.com),因此您可能需要從位置1開始搜索某些內容。

相關問題