正则表达式从链接导出域名

时间:2015-07-24 13:01:01

标签: javascript regex

我查看了相同标题的问题列表,但没有人回答我的问题所以我不得不创建一个新问题。

我正在尝试使用js中的regex将域名形成一个字符串。以下是一些例子:

  1. www.demo.com
  2. http://demo.co.uk/
  3. https://demo.com/foo.html?q=bar
  4. https://www.demo.com/foo.html?q=bar
  5. http://demo.co.uk/foo.html?q=bar
  6. http://www.demo.com/foo.html?q=bar
  7. www.demo.com.co
  8. demo.com
  9. demo.co.uk
  10. 以上所有内容都应该返回'demo'

    我目前的正则表达式看起来像这样

    (\/{2}www\.|\/{2}|www\.)([^\...\.?]+)\.
    

    它传递了所有情况,但最后一个,我厌倦了另一个选项为\ 0,但它仍然与最后一个测试不匹配。

    您可以查看与大多数here

    匹配的内容

2 个答案:

答案 0 :(得分:1)

有你的正则表达式:

(^|www|http://|https://)

<强>解释

www - 匹配http://https://^或任何 (因此(\.)?

www也许有一个点(如果它以(.+?)\.开头)

$3 - 获取所有字符(域名),直到下一个点。

使用(UnityPlayerNativeActivity)获取域名。

DEMO

答案 1 :(得分:0)

^(?:(https?):\/\/)?(?:([^:\/\s.]+)\.)?(([^:\/\s]+))(((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(.*)?(#[\w\-]+)?)?$


^(?:(https?):\/\/)? http://
(?:([^:\/\s.]+)\.)? subdomain.
(([^:\/\s]+))       domain.com
(((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(.*)?(#[\w\-]+)?)?$ remaining

http://regexr.com/3bf87