URL parts from url

like in php but for javascript

JavaScript

String.prototype.urlParts = function() {
    var loc = this;
    loc = loc.split(/([a-z0-9_\-]{1,5}:\/\/)?(([a-z0-9_\-]{1,}):([a-z0-9_\-]{1,})\@)?((www\.)|([a-z0-9_\-]{1,}\.)+)?([a-z0-9_\-]{3,})((\.[a-z]+)(:(\d{1,5}))?)(\/([a-z0-9_\-]{1,}\/)+)?([a-z0-9_\-]{1,})?(\.[a-z]{2,})?(\?)?(((\&)?[a-z0-9_\-]{1,}(\=[a-z0-9_\-]{1,})?)+)?/g);
    loc.href = this;
    loc.protocol = loc[1];
    loc.user = loc[3];
    loc.password = loc[4];
    loc.subdomain = loc[5];
    loc.domain = loc[8];
    loc.domainextension = loc[10];
    loc.port = loc[12];
    loc.path = loc[13];
    loc.file = loc[15];
    loc.filetype = loc[16];
    loc.query = loc[18];
    loc.anchor = loc[22];
    //return the final object
    return loc;
};

document.write("<h1>Example</h1><br />");
var link = "http://asdf.local:8950/a/b/c/index.php?test1=5&test2=789#title";
var locat = link.urlParts();
var itemName;
for (itemName in (locat)) {
    if (locat.hasOwnProperty(itemName) && (locat[itemName] !== undefined) && isNaN(itemName)) {
        document.write("<strong>" + itemName + ":</strong> " + locat[itemName] + "<br />");
    }
}