简介
在本实验中,我们将探索如何使用正则表达式和数组方法提取 URL 参数并将其映射到 JavaScript 对象中。我们将学习如何使用 String.prototype.match()
来获取所有键值对,以及如何使用 Array.prototype.reduce()
将它们转换为单个对象。在本实验结束时,你将更好地理解如何处理 URL 并从中提取有用信息。
This tutorial is from open-source community. Access the source code
💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版
在本实验中,我们将探索如何使用正则表达式和数组方法提取 URL 参数并将其映射到 JavaScript 对象中。我们将学习如何使用 String.prototype.match()
来获取所有键值对,以及如何使用 Array.prototype.reduce()
将它们转换为单个对象。在本实验结束时,你将更好地理解如何处理 URL 并从中提取有用信息。
要创建一个包含当前 URL 参数的对象,请执行以下步骤:
node
以开始练习编码。String.prototype.match()
与适当的正则表达式一起使用,以提取所有键值对。Array.prototype.reduce()
将它们映射并组合成一个对象。location.search
作为参数传递,以应用于当前 URL。以下是代码:
const getURLParameters = (url) =>
(url.match(/([^?=&]+)(=([^&]*))/g) || []).reduce(
(a, v) => (
(a[v.slice(0, v.indexOf("="))] = v.slice(v.indexOf("=") + 1)),
a
),
{}
);
你可以将此函数与任何 URL 一起使用,以获取包含其参数的对象。以下是一些示例:
getURLParameters("google.com"); // {}
getURLParameters("http://url.com/page?name=Adam&surname=Smith");
// {name: 'Adam', surname: 'Smith'}
恭喜你!你已经完成了“将 URL 参数作为对象”的实验。你可以在 LabEx 中练习更多实验来提升你的技能。