我正在嘗試在 Google 跟蹤代碼管理器中創建一個自定義 JavaScript 變數,以從具有多個分隔符的頁面 url 中拆分資訊。例如,在https://website.com/item/2006-yellow-submarine中,我想捕獲2006。我一直在使用下面的代碼一次基于一個分隔符(- 或 /)來分隔 URL。但是,如果我使用下面的代碼來拉 2006,它將拉 2006 以及之后的所有內容(因此拉的資料將是2006-yellow-submarine而不僅僅是 2006)。
function() {
var pageUrl = window.location.href;
return pageUrl.split("/")[4];
}
有沒有辦法只提取 2006,或者基本上使用 - 和 / 分隔符的組合從 URL 中提取單個路徑點,而不必每次都在代碼中指定 URL?
由于它是一個用于自動捕獲每個頁面上的年份的變數,因此我無法為網站的每個單獨頁面創建一個變數。因此,該解決方案不能涉及指定 URL。
uj5u.com熱心網友回復:
您可以按 RegExp 拆分,按/or拆分-,即/[/-]/:
const u = new URL("https://website.com/item/2006-yellow-submarine");
const pathname = u.pathname;
console.log(pathname);
// skip the first item... it will always be empty
const [, ...pathParts] = pathname.split(/[/-]/);
console.log(pathParts);
uj5u.com熱心網友回復:
從字串中創建一個新的 URL 物件,提取路徑名的最后一部分,然后用一個小的正則運算式匹配年份。
// Create a new URL object from the string
const url = new URL('https://website.com/item/2006-yellow-submarine');
// `split` the pathname on "/", and `pop` off
// the last element of that array
const end = url.pathname.split('/').pop();
// Then match the year
console.log(end.match(/[0-9]{4}/)[0]);
uj5u.com熱心網友回復:
為此,您可以這樣做:
function splitWebURL(url, loc1, loc2) {
return url.split("/")[loc1].split("-")[loc2];
}
var test = splitWebURL("https://website.com/item/2006-yellow-submarine", 4, 0);
console.log(test);
它作業得很好,您只需更改 2 個索引號并更改 url 即可輕松更改它。
uj5u.com熱心網友回復:
你可以做這樣的事情
let year = window.location.href.match(/item\/([0-9]*)-/)[1];
假設您有一個類似的網址item/year-something,
您將不得不處理 url 不匹配的情況,所以可能是這樣的:
let match = window.location.href.match(/item\/([0-9]*)-/);
if(match && match.hasOwnProperty(1)) {
let year = match[1]
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/483244.html
