我所说的“有意义”是指大多数人用来识别网站的 url 部分(有专门的技术术语吗?)。例如,我希望代码在以下所有情况下都返回“gm”:
gm.com
, gm.net
, gm.info
, gm.com.uk
, gm.co.jp
, gm.jp
(这些可能不是真实网站)
此外,以上任何一个都有额外的子域,例如www.gm.com
, www.cars.gm.com
等。它不必与国际化国家代码顶级域(非-ASCII 字符)。
我能想到的唯一方法是将最高级别标签(例如 .com
)与通用顶级域、美国顶级域和国家代码顶级域进行比较域,然后尝试一次向左移动一个标签。这仍然要求我知道 .jp
(以及所有其他国家/地区)下的所有二级域名,否则我将无法为 www.yahoo 返回正确的值.jp
和 yahoo.co.jp
。有更好的方法吗?
最佳答案
这实际上是一个比乍看起来更棘手的问题,因为您需要的域组件(技术上称为“标签”)的数量取决于域名。看这个:
http://www.onlineaspect.com/2011/03/17/detect-subdomains-using-effective-tlds/
Mozilla 项目启动了一个姊妹项目来维护有效 TLD 的列表;一旦您确定了 TLD,那么您正在寻找的只是在那之前的另一个标签。该列表可在此处获得:
关于javascript - JavaScript中如何获取域名的 "meaningful"节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16205289/