javascript - 如何从几个可能的 URL 参数之一获取值?

标签 javascript url parameters 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 的功能。

您可以使用一组 ||:

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();

关于javascript - 如何从几个可能的 URL 参数之一获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55517547/

相关文章:

javascript - Handlebars 数组元素在此

PHP - 如何创建动态 URL?

php - 在mysql中使用变量作为参数

带/不带选项的 BASH 脚本和参数

javascript - 高级参数使用

javascript - Amazon S3 CORS 配置 XMLHttpRequest GET

javascript - 你可以在 JavaScript 的返回函数中使用父函数变量吗?

javascript - 在javascript中选择下拉列表时如何显示加载图像

url - spring webflow + portal - 如何获取流定义中的url参数?

jquery - 如何将 JQuery 与 IP.Board 正确集成?