今天分享一段优质 JS 代码片段简化获取url中参数流程!
const getQueryByName = (name) => { const query = new URLSearchParams(location.search) return decodeURIComponent(query.get(name)) } // url: https://sunday.com/?name=fatfish&age=100 const name = getQueryByName('name') // fatfish const age = getQueryByName('age') // 100 const gender = getQueryByName('gender') // null
分享原因
这段代码通过 URLSearchParams 对象简化了从 URL 中获取查询参数的过程。
通过这种方法,可以更方便地在 JavaScript 中解析和获取 URL 查询参数,特别适用于处理需要从 URL 中提取参数的场景,比如读取用户在网页中的输入或搜索关键字等。
这是项目中一个很常见的操作,之前我们经常会使用 正则表达式 或者 拆分字符串 来完成,现在有了更简单的方式!
代码解析
1. const query = new URLSearchParams(location.search);
创建 URLSearchParams 对象。
URLSearchParams 是 Web API 的一部分,用于操作 URL 的查询字符串。
location.search 返回当前 URL 的查询字符串(例如 ?name=value&key=value)。
URLSearchParams 对象将其解析为一个可以操作的查询参数对象。
2. decodeURIComponent(query.get(name));
query.get(name) 方法从查询参数对象中获取名称为 name 的参数值。
decodeURIComponent 用于对参数值进行解码,以确保返回的值是一个人类可读的字符串,避免 URL 编码带来的问题(例如 %20 代表空格)。