JS解析URL
js解析URL参数
我们以http://www.example.com:8989/test/index.html#box?username=yxw&age=11为当前页面的URL
获取当前页面的URL: location.href
location除了href属性之外,还有以下几个属性
我们的URL大体可以分为一下几个部分
| 属 性 名 | 例 子 | 说 明 |
|---|---|---|
| protocol | 'http' | 返回页面使用的协议。通常是http:或https: |
| hostname | 'www.example.com' | 返回不带端口号的服务器名称 |
| host | 'www.example.com:8989' | 返回服务器名称和端口号(如有端口号则返回,否则不返回端口号) |
| port | '8989' | 返回URL中指定的端口号,如果URL中不包含端口号, 则这个属性返回空字符串 |
| pathname | '/test/index.html' | 返回URL中的目录和(或)文件名 |
| hash | '#box' | 返回URL中hash(锚点链接,#后面跟零或多个字符), 如果URL中不包含,则返回空字符串 |
| search | '?username=yxw&age=11' | 返回URL的查询字符串,这个字符串以问号(?)开头 |
- 如果我们想获取example这个字符串,我们可以用以下方法:
将获取到的字符串按照 ‘.’分割开来,返回的是一个数组,然后取数组的第一项var brand=location.hostname.split('.')[1]; console.log(brand) //'example' - 创建一个函数,解析查询字符串然后返回一个包含所有参数的一个对象:
function getQueryStringArgs() { //取得查询字符串并去掉开头问号 var qs = (location.search.length > 0 ? location.search.substring(1) : ''); // 保存数据的对象 var args = {}; // 取得每一项 var items = qs.length ? qs.split('&') : []; var item = null, name = null, value = null; //逐个将每一项添加到args对象中 for (var i = 0; i < items.length; i++) { item = items[i].split('='); name = decodeURIComponent(item[0]); value = decodeURIComponent(item[1]); if (name.length) { args[name] = value; } } return args; } args=getQueryStringArgs(); console.log(args['username']) //yxw

浙公网安备 33010602011771号