Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

获取网址的domain #47

Open
nunnly opened this issue Oct 11, 2017 · 7 comments
Open

获取网址的domain #47

nunnly opened this issue Oct 11, 2017 · 7 comments
Labels

Comments

@nunnly
Copy link
Owner

nunnly commented Oct 11, 2017

Write a function that when given a URL as a string, parses out just the domain name and returns it as a string. For example:

domainName("http://github.com/carbonfive/raygun") == "github" 
domainName("http://www.zombie-bites.com") == "zombie-bites"
domainName("https://www.cnet.com") == "cnet"
domainName("https://www.cnet.cn/test.html") == "cnet"
domainName("https://test.cnet.cn") == "cnet"
@nunnly nunnly added the 难度5 label Oct 11, 2017
@nunnly nunnly changed the title Write a function that when given a URL as a string, parses out just the domain name and returns it as a string. For example: 获取网址的domain Oct 11, 2017
@Gxiangyu
Copy link

Gxiangyu commented Oct 12, 2017

function domainName(url) {
  var a = document.createElement('a');
  a.href = url;
  var l = a.hostname.split('.');
  if(l.length > 2){
    return l[1];
  }else{
    return l[0]
  }
}

@weichenguang
Copy link

weichenguang commented Oct 12, 2017

function domainName(url) {
    var patt1 = /(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/;
    var str = url.match(patt1)[2]
    var arr = str.split(".")
    return arr.length == 3? arr[1] : arr[0]
  }

@nunnly
Copy link
Owner Author

nunnly commented Oct 12, 2017

@Gxiangyu 请不要使用BOM相关API,用纯javascript

@SummerWind-July
Copy link

// Written by xlm
function domainName(url){
        var index = url.indexOf('//');
        url = url.substring(index+2);
        var index2  = url.indexOf('/');
        if (index2!=-1){
            url = url.substring(0,index2);
        }
        var index3 = url.indexOf('.');
        var index4 = url.indexOf('.',index3+1);
        if (index4!=-1){
            url = url.substring(index3+1,index4);
        }else {
            url = url.substring(0,index3);
        }
        return url;
    }

@zane277
Copy link

zane277 commented Oct 12, 2017

function domainName(url){
	var newUrl=url.split("//")[1]
	// console.log(newUrl)
	var newUrl=newUrl.split("/")[0]
	// console.log(newUrl)
	var newUrl = newUrl.split('.');
	// console.log(newUrl)
	var newUrl = newUrl[newUrl.length - 2];
	console.log(newUrl)
}

@Caocp
Copy link

Caocp commented Oct 12, 2017

function domainName(name){
    var a = name.split("/");
    var b = a[2].toString();
    var c = b.split(".");
    var d = c[c.length - 2].toString();
    document.write(d+"</br>");
  }

@Robin-front
Copy link

function domainName(url) {
    var reg = /(\w+:\/\/)?([^/:?#&]+)/;
    var str = url.match(reg)[2];
    var arr = str.split(".");
    return arr[arr.length-2];
  }

add case:

domainName("https://test.taobao.com") == "taobao"
domainName("https://test.taobao.com?v=123") == "taobao"
domainName("https://test.taobao.com#1") == "taobao"
domainName("https://h5api.m.taobao.com") == "taobao"
domainName("https://test.taobao.com:8080") == "taobao"

但不支持国家或地区二级域 : .com.cn .co.uk

function domainName(url, secondLevel) {
    var reg = /(\w+:\/\/)?([^/:?#&]+)/;
    var str = url.match(reg)[2];
    var arr = str.split(".");
    return !secondLevel ? arr[arr.length-2] : arr[arr.length-3];
  }

domainName("https://test.taobao.com.cn", true) == "taobao"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

7 participants