jsUri
URI parsing and manipulation for node.js and the browser.
Pass any URL into the constructor:
var uri = new Uri('http://user:pass@www.test.com:81/index.html?q=books#fragment')
Use property methods to get at the various parts:
uri.protocol()
uri.userInfo()
uri.host()
uri.port()
uri.path()
uri.query()
uri.anchor()
Property methods accept an optional value to set:
uri.protocol('https')
uri.toString()
uri.host('mydomain.com')
uri.toString()
Chainable setter methods help you compose strings:
new Uri()
.setPath('/archives/1979/')
.setQuery('?page=1')
new Uri()
.setPath('/index.html')
.setAnchor('content')
.setHost('www.test.com')
.setPort(8080)
.setUserInfo('username:password')
.setProtocol('https')
.setQuery('this=that&some=thing')
new Uri('http://www.test.com')
.setHost('www.yahoo.com')
.setProtocol('https')
Query param methods
Returns the first query param value for the key:
new Uri('?cat=1&cat=2&cat=3').getQueryParamValue('cat')
Returns all query param values for the given key:
new Uri('?cat=1&cat=2&cat=3').getQueryParamValues('cat')
Internally, query key/value pairs are stored as a series of two-value arrays in the Query object:
new Uri('?a=b&c=d').query().params
Add query param values:
new Uri().addQueryParam('q', 'books')
new Uri('http://www.github.com')
.addQueryParam('testing', '123')
.addQueryParam('one', 1)
new Uri('?b=2&c=3&d=4').addQueryParam('a', '1', 0)
Replace every query string parameter named key
with newVal
:
new Uri().replaceQueryParam('page', 2)
new Uri('?a=1&b=2&c=3')
.replaceQueryParam('a', 'eh')
new Uri('?a=1&b=2&c=3&c=4&c=5&c=6')
.replaceQueryParam('c', 'five', '5')
Removes instances of query parameters named key
:
new Uri('?a=1&b=2&c=3')
.deleteQueryParam('a')
new Uri('test.com?a=1&b=2&c=3&a=eh')
.deleteQueryParam('a', 'eh')
Test for the existence of query parameters named key
:
new Uri('?a=1&b=2&c=3')
.hasQueryParam('a')
new Uri('?a=1&b=2&c=3')
.hasQueryParam('d')
Create an identical URI object with no shared state:
var baseUri = new Uri('http://localhost/')
baseUri.clone().setProtocol('https')
baseUri
This project incorporates the parseUri regular expression by Steven Levithan.