[英]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.