【发布时间】:2018-09-06 03:12:10
【问题描述】:
我需要想出一个正则表达式来仅从 url 中提取 domainname.extension。现在我有一个去掉“www”的正则表达式。来自主机名,但我需要更新正则表达式以从主机名中删除任何子域字符串:
这会剥离 www.:
window.location.hostname.replace(/^www\./i, '')
但我需要检测 abc.def.test.com 或 ghi.test.com 上的任何子域信息以将其替换为空字符串并始终返回“test.com”
【问题讨论】:
-
你需要这样的东西
\w+\.(?=\w+\.) -
谢谢,但这只会去掉第一个子域
-
你也应该使用
g修饰符:window.location.hostname.replace(/\w+\.(?=\w+\.)/g, '') -
如果你不需要正则表达式,你可以使用 split+filter+join (
"1.2.3.4.5".split('.').filter((c, i, a) => i > a.length - 3).join('.')) -
聪明的选择
标签: javascript regex