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) );
});