24 lines
584 B
JavaScript
24 lines
584 B
JavaScript
|
module.exports = urlSetQuery
|
||
|
function urlSetQuery (url, query) {
|
||
|
if (query) {
|
||
|
// remove optional leading symbols
|
||
|
query = query.trim().replace(/^(\?|#|&)/, '')
|
||
|
|
||
|
// don't append empty query
|
||
|
query = query ? ('?' + query) : query
|
||
|
|
||
|
var parts = url.split(/[\?\#]/)
|
||
|
var start = parts[0]
|
||
|
if (query && /\:\/\/[^\/]*$/.test(start)) {
|
||
|
// e.g. http://foo.com -> http://foo.com/
|
||
|
start = start + '/'
|
||
|
}
|
||
|
var match = url.match(/(\#.*)$/)
|
||
|
url = start + query
|
||
|
if (match) { // add hash back in
|
||
|
url = url + match[0]
|
||
|
}
|
||
|
}
|
||
|
return url
|
||
|
}
|