summaryrefslogtreecommitdiffstats
path: root/js/vendor/js-url/README.md
blob: d9d868c6f39fcc3588f5a2cc4ec103934388b4c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# url()

A simple, lightweight url parser for JavaScript (~1.7 Kb minified, ~0.7Kb gzipped).

* [Change Log](https://github.com/websanova/js-url/wiki/Change-Log)
* [View the url demo](http://url.websanova.com)
* [Download the lastest version of url](https://github.com/websanova/js-url/tags)

Also available for Node.js.

* [On GitHub as node-url](https://github.com/websanova/node-url)
* [On Npm as wurl](https://www.npmjs.com/package/wurl)


## Bower Install

```
> bower install js-url
```

## Notes

For path(1) and path(-1) will always act as if the path is in the form `/some/path/` regardless of whether the original path was `/some/path` or `some/path/`.

## Tld

There are two versions, `url.min.js` and `url-tld.min.jd`. The `tld` version contains a list of valid tld's making the file about 2kb larger. If you don't need support for it just use domain parts arguments (`url('-1')`) to get the tld pieces you need.

## Examples

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

```js
url();            // http://rob:abcd1234@www.example.co.uk/path/index.html?query1=test&silly=willy&field[0]=zero&field[2]=two#test=hash&chucky=cheese
url('tld');       // co.uk
url('domain');    // example.co.uk
url('hostname');  // www.example.co.uk
url('sub');       // www
url('.0')         // undefined
url('.1')         // www
url('.2')         // example
url('.-1')        // uk
url('auth')       // rob:abcd1234
url('user')       // rob
url('pass')       // abcd1234
url('port');      // 80
url('protocol');  // http
url('path');      // /path/index.html
url('file');      // index.html
url('filename');  // index
url('fileext');   // html
url('1');         // path
url('2');         // index.html
url('3');         // undefined
url('-1');        // index.html
url(1);           // path
url(2);           // index.html
url(-1);          // index.html
url('query');     // query1=test&silly=willy
url('?');         // {query1: 'test', silly: 'willy', field: ['zero', undefined, 'two']}
url('?silly');    // willy
url('?poo');      // null
url('field[0]')   // zero
url('field')      // ['zero', undefined, 'two']
url('hash');      // test=hash&chucky=cheese
url('#');         // {test: 'hash', chucky: 'cheese'}
url('#chucky');   // cheese
url('#poo');      // undefined
```

Also supports `mailto`.

```js
url('protocol', 'mailto:rob@websanova.com'); // mailto
url('email', 'mailto:rob@websanova.com');    // rob@websanova.com

```

We can also pass a url in and use all the same options on it:

```js
url('hostname', 'test.www.example.com/path/here');          // test.www.example.com
url('protocol', 'www.example.com/path/here');               // http
url('path', 'http://www.example.com:8080/some/path');       // /some/path
url('port', 'http://www.example.com:8080/some/path');       // 8080
url('protocol', 'https://www.example.com:8080/some/path');  // https
etc...
```

## jQuery

Also include is a jQuery version of the plugin that can be called via $.url() with all the same options.  If you're already using jQuery it may be better to use the jQuery version to avoid namespacing issues.

## Grunt.js

If you want to use Grunt you will need to install the required plugins locally using `npm install` in the root folder of your project.  If you need to setup Grunt on your system you can follow my [Setting up Grunt.js](http://www.websanova.com/blog/javascript/how-to-setup-grunt) guide.

## Resources

* [More jQuery plugins by Websanova](http://websanova.com/plugins)
* [jQuery Plugin Development Boilerplate](http://wboiler.websanova.com)
* [The Ultimate Guide to Writing jQuery Plugins](http://www.websanova.com/blog/jquery/the-ultimate-guide-to-writing-jquery-plugins)

## License

MIT licensed

Copyright (C) 2011-2012 Websanova http://www.websanova.com