【发布时间】:2013-09-05 19:05:59
【问题描述】:
我使用以下代码从 URL 中删除 http:// 和 www. 或 dev.:
Uri uri = new Uri(this.Referrer);
if (uri != null )
return uri.GetLeftPart(UriPartial.Authority).Replace("http://dev.", "").Replace("http://www.", "").Replace("http://", "");
else
return null;
我不喜欢我依赖.Replace() 函数。在我意识到this.Referrer 没有子域之前,我遇到了一个错误很长一段时间。
有没有更优雅的方法来做到这一点?
【问题讨论】:
-
类似但并不真正适用。
-
当然这个问题也没有很好的表述,因为即使所谓的顶级域仍然是根域
.(empty string)的子域。要可靠地做到这一点,需要有一个顶级域列表,然后只在其以下一个域级别。 -
硬编码列表...我建议不要这样做,这是一种很大的代码气味并且不必要地臃肿。
-
它不一定是硬编码列表,请随时从 IANA 获取顶级域 - data.iana.org/TLD/tlds-alpha-by-domain.txt