# js-url 用于url的js开源库

### 安装

参见， [Github README](https://github.com/websanova/js-url)

### 使用

```javascript
var uri = 'http://rob:abcd1234@www.example.co.uk/path/path2/index.html?query1=test&silly=willy&field[0]=zero&field[2]=two&hobby=basketball&hobby=pingpong#test=hash&chucky=cheese'

// -----------------------------------------协议
url('protocol',uri);  // http

// -----------------------------------------HOST NAME部分
// hostname
url('hostname', uri); // www.example.co.uk
// domain 域名
url('domain', uri); // example.co.uk
// sub 子域名
url('sub', uri); // www

// 使用数字获取对应位置的值, 注意是从 1 开始，如果不存在，则返回undefined
url('.0', uri); // undefined
url('.1', uri); // www
url('.2', uri); // example
url('.3', uri); // co
url('.4', uri); // uk
// 从后往前，使用 -
url('.-1', uri); // uk

// ------------------------------------------认证部分
url("auth", uri); // rob:abcd1234
url("user", uri); // rob
url("pass", uri); // abcd1234

// ------------------------------------------端口部分
url('port'); // 80

// ------------------------------------------path路径部分
// 获取整个path
url('path', uri); // /path/path2/index.html
// 获取文件名 ? 没有文件的接口如何
url('file', uri); // index.html
// 获取文件名 剔除拓展名
url('filename', uri); // index
// 获取文件拓展名
url('fileext', uri); // html

// 使用数字获取对应的值, 同样以1开始
url('1', uri); // path
url('2', uri); // path2
url('3', uri); // index.html
url('-1', uri); // index.html

// -------------------------------------------query参数部分
// 获取所有参数，不包含问好
url('query', uri); // query1=test&silly=willy&field[0]=zero&field[2]=two&hobby=basketball&hobby=pingpong
// 获取所有参数，以对象的方式表现出来
// 有两个相同的参数，只会取最后一个，bug?
url('?', uri); // {"query1":"test","silly":"willy","field":["zero",null,"two"],"hobby":"pingpong"}
// 获取指定参数的值，如果没有，返回undefined
url('?hobby', uri); // basketball ？bug，多个相同的参数不准确

// bug？ 获取field[0] field 都为undefined，待处理

// ---------------------------------------------获取锚点部分
// 获取所有锚点
url('#', uri); // 对象 {test: 'hash', chucky: 'cheese'}
// 获取指定锚点值
url('#chucky', uri); // cheese
```

> 修改url，可以使用获取并且重新拼接的方式
