获取 url 中的某个参数
获取 url 参数最便捷的方法当然是用正则表达式,废话不多说,直接上码:
1 | function getUrlParam(par){ |
假如我们想获得下面地址的 id 参数值:
http://127.0.0.1/test.html?id=myId&name=myName
调用该方法即可。
1 | var id = getUrlParam('id'); |
返回结果:
1 | myId |
正则表达式解析
在这个例子中,正则表达式为:
1 | (^|&)id=([^&]*)(&|$) |
(1) 参数通常在开头(^)或以 & 进行连接
(^|&)
(2) 属性值设定
([^&]*)
[^]
代表匹配未在方括号中指定的字符。添加 &,这样,该正则表达式匹配任何非 & 字符。*
代表出现 0 次或多次,因此只要不出现 &,均被认为是属性值的一部分。
(3) 以 & 作为结束或遇到结尾 ($)
(&|$)
window.location.search.substr(1)
是 url 当中的参数部分。
调用方法的返回结果为:
1 | ["id=myId&", "", "myId", "&", index: 0, input: "id=myId&name=myName"] |
取数组中第三个值即可。
将所有参数转换为对象类型
1 | var parseQueryString = function (param) { |
使用 http://127.0.0.1/test.html?id=myId&name=myName 地址进行检测,得到的返回值为:
1 | { |