How to get domain name only using javascript?

后端 未结 11 683
长发绾君心
长发绾君心 2020-12-02 23:57

I want to get domain name only using javascript. Ex

vn.search.yahoo.com -> yahoo
vn.search.yahoo.com.vn -> yahoo
sub1.sub2.sub3.abcdef.co.uk -> abcd         


        
11条回答
  •  死守一世寂寞
    2020-12-03 00:55

    function getDomainName( hostname ) {
        var TLDs = new RegExp(/\.(com|net|org|biz|ltd|plc|edu|mil|asn|adm|adv|arq|art|bio|cng|cnt|ecn|eng|esp|etc|eti|fot|fst|g12|ind|inf|jor|lel|med|nom|ntr|odo|ppg|pro|psc|psi|rec|slg|tmp|tur|vet|zlg|asso|presse|k12|gov|muni|ernet|res|store|firm|arts|info|mobi|maori|iwi|travel|asia|web|tel)(\.[a-z]{2,3})?$|(\.[^\.]{2,3})(\.[^\.]{2,3})$|(\.[^\.]{2})$/);
        return hostname.replace(TLDs, '').split('.').pop();
    }
    
    /* TEST */
    
    var domains = [
        'domain.com',
        'subdomain.domain.com',
        'www.subdomain.domain.com',
        'www.subdomain.domain.info',
        'www.subdomain.domain.info.xx',
        'mail.subdomain.domain.co.uk',
        'mail.subdomain.domain.xxx.yy',
        'mail.subdomain.domain.xx.yyy',
        'mail.subdomain.domain.xx',
        'domain.xx'
    ];
    
    var result = [];
    for (var i = 0; i < domains.length; i++) {
        result.push( getDomainName( domains[i] ) );
    }
    
    alert ( result.join(' | ') );
    // result: domain | domain | domain | domain | domain | domain | domain | domain | domain | domain
    

提交回复
热议问题