這個問題在這里已經有了答案: 如何在 JavaScript 中獲取查詢字串值? (73 個回??答) 昨天關門。
我有一個像https://www.some.com/something-else/?utm_source=Google-PageM&utm_medium=Paid&utm_campaign=SEM-Something. 該請求是提取 UTM(Google-Page、Paid、SEM-Somethig)的值以在發布請求中發送它們。實際上我正在使用這個 Javascript 代碼:
const utmSource = location.href.replaceAll('?', '$').
replaceAll('&', '$').
split('$').filter(utm => utm.includes('utm_source')).
map(utm => utm.split('=')).flat()[1];
對于每個 UTM(utm_source、utm_campaign 和 utm_medium),但我認為這可能是更好的方法。
有更好的方法嗎?
感謝大家!
uj5u.com熱心網友回復:
如何將其轉換為 URL 并獲取searchParams?
const url = new URL("https://www.some.com/something-else/?utm_source=Google-PageM&utm_medium=Paid&utm_campaign=SEM-Something");
console.log(url.searchParams.get("utm_medium"));
要獲得所有searchParams:
const url = new URL("https://www.some.com/something-else/?utm_source=Google-PageM&utm_medium=Paid&utm_campaign=SEM-Something");
const params = new URLSearchParams(url);
url.searchParams.forEach(function (val, key) {
console.log(key,val)
});
以params“utm_”開頭:
const url = new URL("https://www.some.com/something-else/?utm_source=Google-PageM&utm_medium=Paid&utm_campaign=SEM-Something");
const params = new URLSearchParams(url);
const paraobject ={}
url.searchParams.forEach(function (val, key) {
if(key.startsWith("utm_"))
paraobject[key] = val
});
console.log(paraobject)
console.log(paraobject["utm_source"])
uj5u.com熱心網友回復:
獲取查詢引數的方法有很多。然后我只檢查utm_前綴,如下所示:
const url = 'utm_source=Google-PageM&utm_medium=Paid&utm_campaign=SEM-Something';
const params = new URLSearchParams(url);
let utmParams = {};
for (const [key, val] of params) {
// check for prefix
if (key.startsWith('utm_')) {
// add to a new object array
utmParams[key] = val;
}
}
console.log(utmParams);
uj5u.com熱心網友回復:
你只想要引數的值嗎?我假設您想要在帖子中使用鍵和值。獲取所有usm_*引數(帶有鍵和值)的一種方法是這樣的:
const url = new URL("https://www.some.com/something-else/?utm_source=Google-PageM&utm_medium=Paid&utm_campaign=SEM-Something");
const urlParams = new URLSearchParams(url.search);
const utmParams = Array.from(urlParams.entries()).filter(param => param[0].startsWith("utm"));
/* utmParams:
[Array(2), Array(2), Array(2)]
0: ['utm_source', 'Google-PageM']
1: ['utm_medium', 'Paid']
2: ['utm_campaign', 'SEM-Something']
*/
然后,如果您只想獲取鍵或值:
const utmKeys = utmParams.map(key => key[0]);
const utmValues = utmParams.map(value => value[1]);
/* utmKeys:
['utm_source', 'utm_medium', 'utm_campaign']
*/
/* utmValues:
['Google-PageM', 'Paid', 'SEM-Something']
*/
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/454238.html
標籤:javascript 数组 细绳 网址 分裂
