2017-08-25 68 views
-1

网址示例:JS:如何获取网站名称?

  • let str = 'https://www.google.com.ua/images/branding/product/ico/googleg_lodp.ico'
  • let str1 = 'https://www.google.com/images/branding/product/ico/googleg_lodp.ico'
  • let str2 = 'https://books.google.com.ua/images/branding/product/ico/googleg_lodp.ico'

如何从这样的网址,只得到网站的名称?只有这个词 - 谷歌。

+1

你是什么意思的网站名称?可以说str2你期待什么? –

+0

Sarath Kumar,这个答案不适合。没有考虑到子域和二级域。 – VINET

+0

那么,你期待什么样的str2? –

回答

0

这工作得相当好:

https?.*?(\w{4,})(?=(?:\.\w{2,3})+\/)

名称是组1

Demo。最好使用TLD白名单。

+0

你可以让js功能吗? – VINET

+0

下面是一个示例如何:https://codepen.io/anon/pen/oePLPE几乎我所需要的一个示例:https://stackoverflow.com/a/432503/8315377 – linden2015

+0

。如何添加www? – VINET

0

以下方式将返回组name你想要的东西:

[.+:\/\/]?[^.]*\.?(?<name>[^.]+).+ 

Working demo

它会在网址的情况下,工作就像https://google.com.br,对example.Let我知道,如果你这样想足够了。

编辑:

这是非常困难就像我指着治疗情况:

  • books.google.com
  • books.londrina.br

在第一种情况下,正确的回报是google,但在第二种情况下,理想的结果是books

+0

如果我理解正确,这并不会减损子域。可以使这个JS功能? – VINET

+0

看看https://stackoverflow.com/questions/6603015/check-whether-a-string-matches-a-regex。 – Nizam