Extract hostname name from string

后端 未结 28 1475
情歌与酒
情歌与酒 2020-11-22 07:15

I would like to match just the root of a URL and not the whole URL from a text string. Given:

http://www.youtube.co         


        
28条回答
  •  无人及你
    2020-11-22 08:14

    I tried to use the Given solutions, the Chosen one was an overkill for my purpose and "Creating a element" one messes up for me.

    It's not ready for Port in URL yet. I hope someone finds it useful

    function parseURL(url){
        parsed_url = {}
    
        if ( url == null || url.length == 0 )
            return parsed_url;
    
        protocol_i = url.indexOf('://');
        parsed_url.protocol = url.substr(0,protocol_i);
    
        remaining_url = url.substr(protocol_i + 3, url.length);
        domain_i = remaining_url.indexOf('/');
        domain_i = domain_i == -1 ? remaining_url.length - 1 : domain_i;
        parsed_url.domain = remaining_url.substr(0, domain_i);
        parsed_url.path = domain_i == -1 || domain_i + 1 == remaining_url.length ? null : remaining_url.substr(domain_i + 1, remaining_url.length);
    
        domain_parts = parsed_url.domain.split('.');
        switch ( domain_parts.length ){
            case 2:
              parsed_url.subdomain = null;
              parsed_url.host = domain_parts[0];
              parsed_url.tld = domain_parts[1];
              break;
            case 3:
              parsed_url.subdomain = domain_parts[0];
              parsed_url.host = domain_parts[1];
              parsed_url.tld = domain_parts[2];
              break;
            case 4:
              parsed_url.subdomain = domain_parts[0];
              parsed_url.host = domain_parts[1];
              parsed_url.tld = domain_parts[2] + '.' + domain_parts[3];
              break;
        }
    
        parsed_url.parent_domain = parsed_url.host + '.' + parsed_url.tld;
    
        return parsed_url;
    }
    

    Running this:

    parseURL('https://www.facebook.com/100003379429021_356001651189146');
    

    Result:

    Object {
        domain : "www.facebook.com",
        host : "facebook",
        path : "100003379429021_356001651189146",
        protocol : "https",
        subdomain : "www",
        tld : "com"
    }
    

提交回复
热议问题