Extract hostname name from string

后端 未结 28 1862
情歌与酒
情歌与酒 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:04

    Okay, I know this is an old question, but I made a super-efficient url parser so I thought I'd share it.

    As you can see, the structure of the function is very odd, but it's for efficiency. No prototype functions are used, the string doesn't get iterated more than once, and no character is processed more than necessary.

    function getDomain(url) {
        var dom = "", v, step = 0;
        for(var i=0,l=url.length; i 5) { i=-1; step=1; } else if(v == ':') { i+=2; step=1; }
            } else if(step == 1) {
                //Skip 0 or 4 characters 'www.'
                //(Note: Doesn't work with www.com, but that domain isn't claimed anyway.)
                if(v == 'w' && url[i+1] == 'w' && url[i+2] == 'w' && url[i+3] == '.') i+=4;
                dom+=url[i]; step=2;
            } else if(step == 2) {
                //Stop at subpages, queries, and hashes.
                if(v == '/' || v == '?' || v == '#') break; dom += v;
            }
        }
        return dom;
    }
    

提交回复
热议问题