使用 & 符号从 URL 获取参数
Get parameters from URL with ampersand
问题:如何从带符号的 URL 中正确获取参数?
上下文:
我想弄清楚为什么它是 iTunes Store Webservice returns different data when removing amp;. I'm using this diff tool: https://www.diffnow.com/compare-urls
的结果
原文URL:
https://itunes.apple.com/search?term=star&country=au&media=movie&all
更让我困惑的是 all 中的值 url。根据 iTunes Store Webservice 的文档,它是 attribute
或 entity
。
但无论如何,我仍然得到不同的结果。重申一下,
原url:
https://itunes.apple.com/search?term=star&country=au&media=movie&all
returns 以下数据不同:
a. https://itunes.apple.com/search?term=star&country=au&media=movie&attribute=all
b. https://itunes.apple.com/search?term=star&country=au&media=movie&entity=all
c. https://itunes.apple.com/search?term=star&country=au&media=movie&all
可以创建一个小帮手,使用URL构造函数得到一个对象,表示参数定义的URL
从这个对象中,我们将得到 search 属性 它是 查询字符串 并将 &
替换为&
.
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"
您可以选择 return 一个对象,如果您以后可以轻松处理的话
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: ""}
祝你好运!
问题:如何从带符号的 URL 中正确获取参数?
上下文: 我想弄清楚为什么它是 iTunes Store Webservice returns different data when removing amp;. I'm using this diff tool: https://www.diffnow.com/compare-urls
的结果原文URL:
https://itunes.apple.com/search?term=star&country=au&media=movie&all
更让我困惑的是 all 中的值 url。根据 iTunes Store Webservice 的文档,它是 attribute
或 entity
。
但无论如何,我仍然得到不同的结果。重申一下,
原url:
https://itunes.apple.com/search?term=star&country=au&media=movie&all
returns 以下数据不同:
a. https://itunes.apple.com/search?term=star&country=au&media=movie&attribute=all
b. https://itunes.apple.com/search?term=star&country=au&media=movie&entity=all
c. https://itunes.apple.com/search?term=star&country=au&media=movie&all
可以创建一个小帮手,使用URL构造函数得到一个对象,表示参数定义的URL
从这个对象中,我们将得到 search 属性 它是 查询字符串 并将 &
替换为&
.
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"
您可以选择 return 一个对象,如果您以后可以轻松处理的话
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: ""}
祝你好运!