【发布时间】:2020-11-12 03:31:09
【问题描述】:
我在解析/操作 URI 时遇到问题:
问题陈述:
我想编码 f[users.comma] 并返回它。
[Case-1] 我从后端服务获取一个 url,编码 f[users.comma] 并返回它。
[Case-2] 我从后端服务获得一个 url,并且 f[users.comma] 已经编码。所以不要双重编码并返回它。
预期输出:
`/demo/bigquery/order_items?fields=users.email&f[users.comma]=%22Abbeville%2C+Georgia%22`
代码:
const encodedExample = `/demo/bigquery/order_items?fields=users.email&f[users.comma]=%22Abbeville%2C+Georgia%22` // the last param is encoded
const regularExample2 = `/demo/bigquery/order_items?fields=users.email&f[users.comma]="Abbeville, Georgia"` //
const specialEncode = (url) => {
for (let queryParam of urlObj) {
const [urlKey, urlValue] = queryParam
// Check to see if url contains f[users.comma]
if (urlKey.includes('f[')) {
urlObj.set(urlKey, encodeURI(urlValue))
}
}
return urlObj.toString() // doesn't seem to work
}
我觉得我的方法正在越野。我会很感激这里的一些帮助。
【问题讨论】:
标签: javascript url