javascript - 如何从几个可能的 URL 参数之一中获取值?
问题描述
我想从 url 参数中检索值,但参数不是常量:它可以是“ referer= ”或“ utm_source= ”或“ 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);
解决方案
我可以包含一些正则表达式吗
不,这不是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();
推荐阅读
- kubernetes - 如何一次重启 1000 个 pod
- python - crontab root 命令与普通 root 命令的区别
- c++ - 编译器总是打印一个十六进制/八进制数
- java - 通用 java.time 属性的 Jackson 序列化不适用于 Android API 21(但适用于 29)
- c++ - 如何使用 QSortFilterProxyModel::sort 对 Qlist 中的数据进行排序
- c# - 如何使用 MySqlCommand 的参数获取查询
- node.js - AWS Lambda NodeJS 写入 S3 在本地和服务器上的行为不同
- javascript - 如果禁用javascript,如何使div消失
- swift - 如何在 Swift 中对计算属性进行单元测试?
- java - 如何将标题和正文传输到 Apache Camel 中的第三个处理器?