【发布时间】:2012-05-12 10:13:38
【问题描述】:
有很多 SO 问题似乎可以解决这个问题的变体。但它们往往是复杂的正则表达式答案,我希望我能找到更简单的东西。
给定 location.host 的值
foo.mysite.com
app.foo.mysite.com
mysite.com
如何获取根域mysite.com?
我可以做一些事情,比如找到倒数第二个 .,但这看起来很难看,并且不适用于像 .co.uk 这样的任何 TLD。如果 jQuery 有一个包含这些信息的对象,我很乐意使用它。
我的目标是创建存在于所有子域中的 cookie。为此,我需要找到.mysite.com。我不想硬编码它。
【问题讨论】:
-
给定一个有效 TLD 的列表,这应该不难 - 而不是倒数第二个
.,您需要 TLD 之后的第一个.(从右到左阅读)。您可以使用大的正则表达式或循环来做到这一点,但后者通常效率较低。 -
可以在此处找到完整列表:publicsuffix.org 我想无论您使用正则表达式还是其他方式都不会产生太大影响。在任何情况下,您都必须考虑所有公共 TLD 和 SLD。看看stackoverflow.com/questions/4452916/…。
-
github.com/riffraff/publicsuffix.js 有一个项目可以执行此操作,但它声称“已损坏”。我还没有尝试过,但它可以构成您解决方案的基础。
-
@FelixKling - 谢谢,太好了。投票结束我自己的问题。
-
如果它真的对你有帮助,你也可以删除你的问题......只是说:)快乐编码!