все намного проще, что касается логина и пароля, то там у меня все по стандарту, протокол может содержать хекс %HH как и доменное имя(1-.%00 по стандарту валидное), но ни таких протокол ни доменных имен нет
function parseURL(s) {
var a = document.createElement('a');
a.href = s;
var o = {
hash: '',
host: '',
hostname: '',
href: '',
origin: '',
pathname: '',
port: '',
protocol: '',
search: ''
}
for (var p in o) {
if ( o.hasOwnProperty(p) ) {
o[p] = a[p];
}
}
return o;
}