18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 建站知识 > JS获取二级域名的方法 (百度搜到的前三个是错的)

JS获取二级域名的方法 (百度搜到的前三个是错的)

时间:2023-02-01 02:36:01 | 来源:建站知识

时间:2023-02-01 02:36:01 来源:建站知识

设我们当前所在的域名为 http://zhuanlan.zhihu.com, 想要获取二级域名, 得到 http://zhihu.com

如果我们所在的域名已经是 http://zhihu.com, 获取二级域名, 还是得到 http://zhihu.com

如果我们所在的域名是 http://www.google.com.hk,获取二级域名,按理说应该得到 http://google.com.hk,但不好意思按我的算法会得到 http://com.hk,你可以自行修改……




这样的JS函数怎么写呢?




上百度搜到的前三个结果(博客园、CSDN、简书),做法都是错的,因此我自己写了一个。




/** * 设我们当前所在的域名为 zhuanlan.zhihu.com, 想要获取二级域名, 得到 zhihu.com,<br/> * 如果我们所在的域名已经是 zhihu.com, 获取二级域名, 还是得到 zhihu.com,<br/> * 如果当前是 IP 地址,则返回后三个数字组成的IP地址(特殊逻辑,不具有通用性) */ getLevel2domain: function () { try { let subdomain = '' const {domain} = document const domainList = domain.split('.') const ipAddressReg = /^(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])/.(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])/.(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])/.(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])$/ /* 若当前域名为 IP 地址、localhost,采用一种特殊的处理 (只用于我们的测试环境,此部分代码不具有通用性) */ if (ipAddressReg.test(domain) || domain === 'localhost') { let level3domain = document.domain; let pattern = /^.*?/b/./b/; return level3domain.replace(pattern, ''); } const urlItems = [] urlItems.unshift(domainList.pop()) while (urlItems.length < 2) { urlItems.unshift(domainList.pop()) subdomain = urlItems.join('.') } return subdomain || document.domain } catch (e) { return document.domain } }

关键词:获取,方法

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭