簡體   English   中英

從網址字符串獲取參數值

[英]Get Param Values from Url String

我需要從網址字符串獲取參數值

http://example.com/admin/param1/value1/param2/value2

我已經使用它做到了:

url.split('/param1/')[1].split('/')[0].replace(/\/$/, '');

但是還有其他更清潔的選擇嗎? 像這樣嗎?

var url_string = "http://www.example.com/t.html?a=1&b=3&c=m2-m3-m4-m5"; //window.location.href
var url = new URL(url_string);
var c = url.searchParams.get("c");
console.log(c);

在這種情況下, searchParams不會給出期望的結果。 請原諒如果已經有答案了。 我找不到

將其標記為重復之前,請仔細閱讀該問題。

假設URL中始終帶有/admin/ ,則可以這樣進行:

 var testUrls = [ "http://example.com/admin/param1/value1/param2/value2", "http://example.com/admin/name/John/age/50/paramWithNoVal", ]; for (var i = 0; i < testUrls.length; i++) { var url = testUrls[i]; var paramArray = url.split("/admin/")[1].split("/"); var paramObj = {}; for (var x = 0; x < paramArray.length; x++) { // i is even - assume this is a param name if (x % 2 === 0) { paramObj[paramArray[x]] = paramArray[x + 1] || null; } } console.log(paramObj); } 

編輯:作為功​​能:

 function getUrlParams(url) { var paramArray = url.split("/admin/")[1].split("/"); var paramObj = {}; for (var x = 0; x < paramArray.length; x++) { if (x % 2 === 0) { paramObj[paramArray[x]] = paramArray[x + 1] || null; } } return paramObj; } var url = "http://example.com/admin/param1/value1/param2/value2"; var params = getUrlParams(url); console.log(params["param1"]); console.log(params["param2"]); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM