window.location.search 属性 包含原始查询字符串。 如果您打开 http://localhost:5000/?answer=42, 然后 window.location.search 将等于 ?answer=42。您可以使用解析查询字符串 URLSearchParams 类 :
const querystring = ?answer=42;
const params = new URLSearchParams(querystring);
params.get(answer); // 42
实例 URLSearchParams 类似于 JavaScript Map。 为了获取搜索字符串中的所有键,您可以使用 keys() 函数 或 entries() 功能 。 请记住,这些函数返回 JavaScript 迭代器, 而不是 数组,因此您需要使用 Array.from() 转换它们。
const querystring = ?answer=42&question=unknown;
const params = new URLSearchParams(querystring);
Array.from(params.keys()); // [answer, question]
Array.from(params.entries()); // [[answer, 42], [question, unknown]]
没有 URLSearchParams
URLSearchParams 类享有合理的浏览器支持并在 Node.js 中工作。 最大的警告是 URLSearchParams 不支持 Internet Explorer 。
URLSearchParams 类为您处理了很多边缘情况,但是在许多情况下,您可以使用以下简单的函数来解析查询字符串。
function parse(qs) {
return qs.
replace(/^\\?/, ).
split(&).
map(str => str.split(=).map(v => decodeURIComponent(v)));
}
parse(?answer=42&question=unknown); // [[answer, 42], [question, unknown]]
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END








请登录后查看评论内容