decodeURIComponent()解码后如何从url取参数
时间: 2023-12-13 14:02:47 浏览: 41
使用JavaScript中的location.search属性可以获取URL的查询部分,包括参数和值。然后可以使用JavaScript中的split()方法将查询字符串转换为参数数组。最后,可以使用decodeURIComponent()方法对参数进行解码。
以下是一个示例代码:
```
var queryString = window.location.search;
var params = new URLSearchParams(queryString);
var paramArray = Array.from(params.entries());
paramArray.forEach(function(param) {
var key = decodeURIComponent(param[0]);
var value = decodeURIComponent(param[1]);
console.log(key + ": " + value);
});
```
此代码将查询字符串转换为参数数组,然后对每个参数使用decodeURIComponent()方法进行解码,并将键和值打印到控制台。
相关问题
用vue 写一个递归 循环url参数进行解码
可以参考以下代码实现:
```vue
<template>
<div>
<div v-if="!isParamObjEmpty">
<p>URL参数:</p>
<ul>
<li v-for="(value, key) in paramsObj" :key="key">{{ key }}: {{ value }}</li>
</ul>
</div>
<div v-if="isParamObjEmpty">
<p>没有URL参数。</p>
</div>
</div>
</template>
<script>
export default {
name: "ParamDecoder",
data() {
return {
paramsObj: {}
};
},
computed: {
isParamObjEmpty() {
return Object.keys(this.paramsObj).length === 0;
}
},
created() {
this.decodeParams(location.search);
},
methods: {
decodeParams(queryString) {
if (queryString) {
const params = new URLSearchParams(queryString);
for (const [key, value] of params.entries()) {
if (/\[(.+)\]/.test(key)) {
// 处理数组
const arrayKey = key.match(/\[(.+)\]/)[1];
const arrayValue = decodeURIComponent(value);
if (this.paramsObj[arrayKey]) {
this.paramsObj[arrayKey].push(arrayValue);
} else {
this.paramsObj[arrayKey] = [arrayValue];
}
} else {
// 处理普通值
this.paramsObj[key] = decodeURIComponent(value);
}
}
}
}
}
};
</script>
```
这个组件会在创建时自动解析当前页面 URL 的查询参数,并将解析后的结果存储在 `paramsObj` 对象中。如果 URL 中没有查询参数,则显示“没有URL参数。”的提示。如果有查询参数,则显示每个参数的键值对。注意,这个组件还支持解析 URL 中的数组参数。
微信小程序从url传递的数组参数怎么还原
如果你想要从 URL 传递的数组参数还原成数组,可以使用 `decodeURIComponent()` 函数和 `JSON.parse()` 函数。
首先,使用 `decodeURIComponent()` 函数将 URL 参数解码,并将解码后的字符串作为 JSON 格式传递给 `JSON.parse()` 函数。例如,如果你的 URL 参数是 `?arr=%5B%22apple%22%2C%22banana%22%2C%22orange%22%5D`,那么你可以使用以下代码将其还原成数组:
```
const urlParams = new URLSearchParams(window.location.search);
const arrString = decodeURIComponent(urlParams.get('arr'));
const arr = JSON.parse(arrString);
```
这段代码首先使用 `URLSearchParams()` 函数获取 URL 参数,然后使用 `decodeURIComponent()` 函数将参数解码为字符串。接下来,使用 `JSON.parse()` 函数将字符串解析为数组。
注意,这里假设你的 URL 参数是一个 JSON 格式的数组字符串,例如 `["apple","banana","orange"]`。如果你的 URL 参数不是一个 JSON 格式的字符串,那么你需要根据实际情况修改代码。