最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript趣题:从URL中提取域名

来源:动视网 责编:小采 时间:2020-11-27 20:26:04
文档

JavaScript趣题:从URL中提取域名

JavaScript趣题:从URL中提取域名:给定一个URL字符串,如何解析它,并从中提取出域名?如下所示:domainName("http://github.com/carbonfive/raygun") == "github" domainName("http://www.zombie-bites.com") =
推荐度:
导读JavaScript趣题:从URL中提取域名:给定一个URL字符串,如何解析它,并从中提取出域名?如下所示:domainName("http://github.com/carbonfive/raygun") == "github" domainName("http://www.zombie-bites.com") =


给定一个URL字符串,如何解析它,并从中提取出域名?

如下所示:

domainName("http://github.com/carbonfive/raygun") == "github" 
domainName("http://www.zombie-bites.com") == "zombie-bites" 
domainName("https://www.cnet.com") == "cnet"

大家都知道,URL的第一部分是协议名,这个可以有很多种,比如http,https,甚至以后会新增更多的协议,因此如果把所有的协议名都拿过来匹配,可扩展性太差了。

但是,不管你是怎样的协议,这一段是必不可少的——"://"。

而且往往,这段字符串后面紧接着的就是域名,我们可以做字符串截取。

下面的代码做了详细说明:

function domainName(url){ 
 var sign = "://"; 
 var pos = url.indexOf(sign); 
 //如果以协议名开头 
 //如:http://github.com/ 
 if(pos >= 0){ 
 pos += sign.length; 
 //截取协议名以后的部分 
 //github.com/ 
 url = url.slice(pos); 
 } 
 //以小数点作分割 
 var array = url.split("."); 
 //如果是以3W开头,返回第二部分 
 //如:www.github.com 
 if(array[0] === "www"){ 
 return array[1]; 
 } 
 //如果不是以3W开头,则返回第一部分 
 //如:github.com/ 
 return array[0]; 
}

这个方法只考虑了几种通用情况,有些情况,比如说有子域名,没有考虑。

文档

JavaScript趣题:从URL中提取域名

JavaScript趣题:从URL中提取域名:给定一个URL字符串,如何解析它,并从中提取出域名?如下所示:domainName("http://github.com/carbonfive/raygun") == "github" domainName("http://www.zombie-bites.com") =
推荐度:
标签: 获取 域名 提取
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top