为了账号安全,请及时绑定邮箱和手机立即绑定

从带有 & 符号的 URL 获取参数

从带有 & 符号的 URL 获取参数

慕运维8079593 2023-12-04 16:36:37
问题:如何正确从带有&符号的URL中获取参数?上下文:我试图弄清楚为什么iTunes Store Webservice在删除amp;时返回不同的数据。。我正在使用这个比较工具: https: //www.diffnow.com/compare-urls原文网址:https://itunes.apple.com/search?term=star&country=au&media=movie&all让我更困惑的是url 中的all值。根据iTunes Store Webservice的文档,它是attribute或entity。但无论如何,我仍然得到不同的结果。重申一下,原始网址:https://itunes.apple.com/search?term=star&country=au&media=movie&all返回以下不同的数据:a. https://itunes.apple.com/search?term=star&country=au&media=movie&attribute=allb. https://itunes.apple.com/search?term=star&country=au&media=movie&entity=allc. https://itunes.apple.com/search?term=star&country=au&media=movie&all
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

您可以创建一个小助手并使用URL构造函数来获取表示参数定义的 URL 的对象。

从这个对象中,我们将获取作为查询字符串的搜索属性,并将其替换为。&&

function getItunesParameters(url) {

  const { search } = new URL(url);

  const parsedQuery = search.replace(/&/g, '&');


  return parsedQuery;

}


getItunesParameters('https://itunes.apple.com/search?term=star&country=au&media=movie&all');

// => "?term=star&country=au&media=movie&all"

如果您以后可以轻松处理,您可以选择返回一个对象


function getItunesParameters(url) {

  const { search } = new URL(url);

  const parsedQuery = search.replace(/&/g, '&');


  return parsedQuery

    .slice(1)

    .split('&')

    .reduce((acc, query) => {

      const [key, value] = query.split('=');

      return { ...acc, [key]: value || '' };

    }, {});

}


getItunesParameters('https://itunes.apple.com/search?term=star&country=au&media=movie&all'); //?

// => {term: "star", country: "au", media: "movie", all: ""}


查看完整回答
反对 回复 2023-12-04
  • 1 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信