本文共 1046 字,大约阅读时间需要 3 分钟。
要提取 URL 中的查询参数,可以使用正则表达式来匹配特定参数值。以下函数可以实现此功能:
function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) { return unescape(decodeURI(r[2])); } return null;}
这个函数通过创建包含目标参数的正则表达式来匹配 URL 中的查询部分。函数首先移除 URL 中的 ?
,然后使用正则表达式来寻找指定参数的值。如果找到匹配项,函数会对参数值进行 URL 解码并去除 HTML 实体编码,返回结果。
这种方法在大多数现代浏览器中都能有效工作,并且代码简洁易懂。
如果你需要更简洁的代码,可以使用 URLSearchParams
类,这个方法主要用于解析 URL 查询字符串。以下函数可以实现此功能:
function getUrlParam(name) { var temp = window.location.href.split('?')[1]; var pram = new URLSearchParams('?'+temp); return pram.get(name);}
这个函数首先提取 URL 中的查询部分,并将其传递给 URLSearchParams
构造函数。然后通过 get
方法来获取指定参数的值。如果参数不存在,函数会返回 null
。
这种方法在现代浏览器中运行非常流畅,但由于 IE 浏览器不支持这个 API,因此在需要兼容 IE 的项目中需要谨慎使用。
在大多数现代项目中,两种方法都可以有效地使用。但如果需要支持 IE 浏览器,建议优先选择 方法一,因为 URLSearchParams
在 IE 中不支持。
这两种方法都是提取 URL 查询参数的有效方式。选择哪种方法取决于你对浏览器兼容性的要求以及你对代码的偏好。
转载地址:http://hqmkk.baihongyu.com/