javascript 防止URL.toString()转义加号(+)

wz1wpwve  于 2023-01-01  发布在  Java
关注(0)|答案(2)|浏览(225)

我想写一个方法,它接受一个字符串数组,并使用一个+符号将它们连接起来,类似于Google所做的。

function getQueryUrl(array) {
  let urlParamsString = array.join("+");
  const url = new URL(window.location);
  url.searchParams.set("query", urlParamsString);
  return url.toString();
}

但是,URL API没有得到清晰的加号分隔的URL,而是使用%2B转义符号。有什么方法可以防止这种情况(除了直接将转义符号替换回+之外)?

efzxgjgh

efzxgjgh1#

尝试unescape()函数:

function getQueryUrl(array) {
  let urlParamsString = array.join("+");
  const url = new URL(window.location);
  url.searchParams.set("query", urlParamsString);
  return unescape(url.toString());
}
3df52oht

3df52oht2#

更新:使用decodeURIComponent(url.toString());

相关问题