JS - UrlHelper
by web-nfo.com
JavaScript
var UrlHelper = {
stripDoubleSlashes: function (url) {
url = url.replace(/([^:]\/)\/+/g, "$1");
if(url.substring(0, 7) != 'http://' && url.substring(0, 8) != 'https://')
{
return url.replace(/\/\//g,'/');
}
return url;
},
endsWithSlash: function (url) {
return (url.substr(-1, 1) == '/' ? true : false);
},
startsWithSlash: function (url) {
return (url.substr(0, 1) == '/' ? true : false);
},
parse: function (url) {
var element = document.createElement('a');
element.href = url;
var parsed = {
'protocol': element.protocol,
'hostname': element.hostname,
'port': element.port,
'pathname': element.pathname,
'search': element.search,
'hash': element.hash,
'host': element.host,
};
return parsed;
}
};
var urls = [
'http://www.test.com/////a/////b/c///',
'http://www.test.com///a/b/c///',
'http://www.test.com//a/b/c///',
'http://www.test.com//a/b/c/',
'http://www.test.com//a/b/c',
'http://www.test.com/////a/////b/c///',
'https://www.test.com/////a/////b/c///',
'https://www.test.com///a/b/c///',
'https://www.test.com//a/b/c///',
'https://www.test.com//a/b/c/',
'https://www.test.com//a/b/c',
'https://www.test.com/////a/////b/c///',
'/////a/b/c///',
'/a/b/c///',
'a/b/c',
];
$(urls).each(function(index, url) {
console.log(url, UrlHelper.stripDoubleSlashes(url), UrlHelper.startsWithSlash(url), UrlHelper.endsWithSlash(url) );
});