如何从几个可能的 URL 参数之一获取值?
How to get value from one of several possible URL parameters?
我想从 url 参数中检索值,但参数不是常量:它可以是“referer=”或“utm_source=”或“来源=”。
我可以用
得到值
url.searchParams.get("referer");
现在完成脚本:
function() {
var url_string = window.location.href;
var url = new URL(url_string);
var ref = url.searchParams.get("referer");
if (ref == undefined) {
return "No Referer";
} else {
return ref;
}
}
我可以包含一些正则表达式吗:
var ref = url.searchParams.get.match(/referer|source|utm\_source/g);
Can I include some regex
没有。这不是 get
.
的功能
您可以使用一组 ||
s:
var ref = url.searchParams.get("referer") || url.searchParams.get("source") || url.searchParams.get("utm_source");
或者获取一个键名数组,将它们映射到 URL 中的值,过滤掉任何没有值的,然后从数组中取出第一个(可能是唯一的)值.
var possible_key_names = ["referer", "source", "utm_source"];
var ref = possible_key_names
.map(name => url.searchParams.get(name))
.filter(value => !!value)
.shift();
您可以像这样遍历 searchParams
:
var url = new URL("https://example.com/page?referer=&utm_source=google");
var value;
for (var [key, val] of url.searchParams) {
if (key.match(/^(referer|source|utm_source)$/) && val !== "") {
value = val;
break;
}
}
console.log(value);
我想从 url 参数中检索值,但参数不是常量:它可以是“referer=”或“utm_source=”或“来源=”。
我可以用
得到值url.searchParams.get("referer");
现在完成脚本:
function() {
var url_string = window.location.href;
var url = new URL(url_string);
var ref = url.searchParams.get("referer");
if (ref == undefined) {
return "No Referer";
} else {
return ref;
}
}
我可以包含一些正则表达式吗:
var ref = url.searchParams.get.match(/referer|source|utm\_source/g);
Can I include some regex
没有。这不是 get
.
您可以使用一组 ||
s:
var ref = url.searchParams.get("referer") || url.searchParams.get("source") || url.searchParams.get("utm_source");
或者获取一个键名数组,将它们映射到 URL 中的值,过滤掉任何没有值的,然后从数组中取出第一个(可能是唯一的)值.
var possible_key_names = ["referer", "source", "utm_source"];
var ref = possible_key_names
.map(name => url.searchParams.get(name))
.filter(value => !!value)
.shift();
您可以像这样遍历 searchParams
:
var url = new URL("https://example.com/page?referer=&utm_source=google");
var value;
for (var [key, val] of url.searchParams) {
if (key.match(/^(referer|source|utm_source)$/) && val !== "") {
value = val;
break;
}
}
console.log(value);