【问题标题】:Regular expression to get url without subpage正则表达式获取没有子页面的url
【发布时间】:2013-02-03 23:44:16
【问题描述】:

没有子页面的 url 的正确正则表达式是什么?

错误:http://abc.com/subpage
是的:http://abc.com

【问题讨论】:

  • 仅供参考,您所说的“子页面”是 URL 的 路径
  • 对不起我的英语不好
  • 这是术语而不是语言,别担心 :)

标签: javascript regex url


【解决方案1】:

检查这个:

^https?://([^/]+?\.[a-zA-Z]{2,4})/?$

它将匹配:

  • http://https://
  • / 以外的任何字符(1 次或多次)
  • .X 结尾,其中X 是2、3 或4 个字母。

我试图让它变得简单。如果您search on Google,您将获得大量结果,这些结果将为您提供更具体的正则表达式来匹配 URL。

【讨论】:

  • 没错,但这里缺少一些东西。它接受 "abc" 。域名扩展呢?
【解决方案2】:

以下内容应捕获所有看起来像有效 URL 的内容。我说“应该”是因为它不会检查 TLD 是否真的真实。

^(https?:\/\/)([\da-z\.-]+)\.([a-z\.]{2,6})\/?$

如果您只想检查某些 TLD,您可以使用以下正则表达式。只需添加更多 TLD 用管道分隔它们 |签名。

^(https?:\/\/)([\da-z\.-]+)\.(net|org|nl|com|co\.uk)\/?$

【讨论】:

    【解决方案3】:
    ^([a-z]{3,5}:\/{2})((?:[\w-]+\.)?[\w-]+\.[a-z]{2,4})$
    
    match 'http://abc.com' -> ['http://abc.com'], ['http://'], ['abc.com']
    match 'http://www.abc.com' -> ['http://www.abc.com'], ['http://'], ['www.abc.com']
    match 'http://abc.com/test' -> null
    

    如果您必须考虑到.museum 之类的顶级域名,您也可以在末尾使用{2,6} 而不是{2,4}

    【讨论】:

      猜你喜欢
      • 2013-02-20
      • 1970-01-01
      • 2017-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      • 1970-01-01
      相关资源
      最近更新 更多