jam*_*ley 12 javascript regex dns
我进行了搜索,发现了很多类似的正则表达式示例,但不是我需要的.
我希望能够传入以下网址并返回结果:
www.google.com返回google.com
sub.domains.are.cool.google.com返回google.com
doesntmatterhowlongasubdomainis.idont.wantit.google.com 返回google.com
sub.domain.google.com/no/thanks返回google.com
希望有意义:)提前谢谢!-James
Tat*_*die 11
您不能使用正则表达式执行此操作,因为您不知道后缀中有多少个块.
例如,google.com的后缀为com.要从subdomain.google.com转到google.com,您必须使用最后两个区块 - 一个用于后缀,一个用于Google.
如果应用此逻辑subdomain.google.co.uk虽然你会结了co.uk.
您实际上需要从http://publicsuffix.org/这样的列表中查找后缀
不要使用正则表达式,使用.split()方法并从那里开始工作.
var s = domain.split('.');
Run Code Online (Sandbox Code Playgroud)
如果您的用例相当狭窄,您可以根据需要检查TLD,然后根据需要返回最后2或3个段:
return s.slice(-2).join('.');
Run Code Online (Sandbox Code Playgroud)
它会使你的眼睛流血少于任何正则表达式解决方案.