Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript regex从链接导出域名_Javascript_Regex - Fatal编程技术网

Javascript regex从链接导出域名

Javascript regex从链接导出域名,javascript,regex,Javascript,Regex,我用相同的标题浏览了问题列表,但没有一个回答我的问题,所以我不得不创建一个新的问题 我正在尝试使用js中的正则表达式从字符串中获取域名。以下是一些例子: www.demo.com www.demo.com.co demo.com demo.co.uk 以上所有内容都应返回“演示” 我现在的正则表达式是这样的 (\/{2}www\.|\/{2}|www\.)([^\...\.?]+)\. 它通过了除最后一个之外的所有情况,我尝试将另一个选项设置为\0,但它仍然与最后一个测试不匹配 您可

我用相同的标题浏览了问题列表,但没有一个回答我的问题,所以我不得不创建一个新的问题

我正在尝试使用js中的正则表达式从字符串中获取域名。以下是一些例子:

  • www.demo.com
  • www.demo.com.co
  • demo.com
  • demo.co.uk
  • 以上所有内容都应返回“演示”

    我现在的正则表达式是这样的

    (\/{2}www\.|\/{2}|www\.)([^\...\.?]+)\.
    
    它通过了除最后一个之外的所有情况,我尝试将另一个选项设置为\0,但它仍然与最后一个测试不匹配

    您可以查看与其中大多数匹配的正则表达式

    这是您的正则表达式:

    (^|www|http://|https://)+(\.)?(.+?)\.
    
    说明:

    (^ | www | http://https://)
    -匹配
    www
    http://
    https://
    或无 (因此出现了
    ^

    (\)?
    可能有一个点(如果它以
    www
    开头)

    (.+?)\。
    -获取域中的所有字符(直到下一个点)

    使用(
    $3
    )获取域


    是否
    ([^.\s/]+)\[^.\s]+(?:/|$)
    满足您的需要?如果您在我提供的链接上使用正则表达式,您可以看到它与www.demo.com和www.demo.com.coRight不匹配
    ([^.\s/]+)\.[^.\s]+(?:\/$\s)
    ,那么。我问你的原因是你不太清楚你的规则是什么。例如,对于
    demo.co.uk
    ,您希望域是
    co
    demo.co
    ,还是只是简单的
    demo
    ?您可能没有测试它,因为它与域匹配,直到下一个链接的第一个字符,我也用您的示例更新了这个问题。
    ^(?:(https?):\/\/)?(?:([^:\/\s.]+)\.)?(([^:\/\s]+))(((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(.*)?(#[\w\-]+)?)?$
    
    
    ^(?:(https?):\/\/)? http://
    (?:([^:\/\s.]+)\.)? subdomain.
    (([^:\/\s]+))       domain.com
    (((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(.*)?(#[\w\-]+)?)?$ remaining