Added parseURL.

This commit is contained in:
Kerrick Long
2011-07-18 12:32:30 -05:00
parent 53c39e82f9
commit 4b043a5cd5
+35
View File
@@ -69,6 +69,41 @@ MHUtils.prototype.forEach = function (array, action) {
return true;
}
/**
* Parses a URL and returns a useful object. http://james.padolsey.com/javascript/parsing-urls-with-the-dom/
* @alias MHUtils.parseURL(url)
* @param {String} url A string with a full URL to be parsed.
* @return {Object} Returns a URL object.
* @method
*/
MHUtils.prototype.parseURL = function (url) {
var a = document.createElement('a');
a.href = url;
return {
source: url,
protocol: a.protocol.replace(':',''),
host: a.hostname,
port: a.port,
query: a.search,
params: (function(){
var ret = {},
seg = a.search.replace(/^\?/,'').split('&'),
len = seg.length, i = 0, s;
for (;i<len;i++) {
if (!seg[i]) { continue; }
s = seg[i].split('=');
ret[s[0]] = s[1];
}
return ret;
})(),
file: (a.pathname.match(/\/([^\/?#]+)$/i) || [,''])[1],
hash: a.hash.replace('#',''),
path: a.pathname.replace(/^([^\/])/,'/$1'),
relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [,''])[1],
segments: a.pathname.replace(/^\//,'').split('/')
};
}
/*
* JavaScript Pretty Date
* Thanks to Dean Landolt's comment on