You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
584 B
24 lines
584 B
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
|
|
}
|