1. 程式人生 > >js獲取url一級域名的方法

js獲取url一級域名的方法

頂級域名有國家頂級域名和國際頂級域名之分:國家頂級域名就是.cn這種,全世界有好幾百種域名;國際頂級域名就是.com這種,總共也就10幾個。

兩種頂級域名可能出現其中之一也可能全都出現,而且國際頂級域名永遠在國家頂級域名之前,所以我們至少需要對其中一種頂級域名進行列舉,這樣才能判斷哪裡是一級域名。

當然我們會選擇列舉國際頂級域名。

一級域名就是頂級域名前面的那段域名。
var parseDomain=function (str) {
            if (!str) return '';
            if (str.indexOf('://') != -1) str = str.substr(str.indexOf('://') + 3);
            var topLevel = ['com', 'net', 'org', 'gov', 'edu', 'mil', 'biz', 'name', 'info', 'mobi', 'pro', 'travel', 'museum', 'int', 'areo', 'post', 'rec'];
            var domains = str.split('.');
            if (domains.length <= 1) return str;
            if (!isNaN(domains[domains.length - 1])) return str;
            var i = 0;
            while (i < topLevel.length && topLevel[i] != domains[domains.length - 1]) i++;
            if (i != topLevel.length) return domains[domains.length - 2] + '.' + domains[domains.length - 1];
            else {
                i = 0;
                while (i < topLevel.length && topLevel[i] != domains[domains.length - 2]) i++;
                if (i == topLevel.length) return domains[domains.length - 2] + '.' + domains[domains.length - 1];
                else return domains[domains.length - 3] + '.' + domains[domains.length - 2] + '.' + domains[domains.length - 1];
            }
        };