首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有符合此标准的url regex验证程序?

是否有符合此标准的url regex验证程序?
EN

Stack Overflow用户
提问于 2022-02-08 14:14:23
回答 1查看 332关注 0票数 2

我需要一个具有以下条件的url验证器regex:

  • 协议(HTTP,HTTPS)是可选的。但是,如果给出任何协议,则必须采用正确的格式,即协议:域,或协议://域。
  • www是可选的
  • 使用直接IP地址是可能的。

因此,根据这些标准,这些标准应该通过:

  • http://www.google.com
  • google.com
  • abc.def.ghi/hij
  • https:216.239.38.120
  • 216.239.38.120

这些建议不应通过:

  • 你好
  • 你好/世界
  • abc://def.ghi
  • ftp:google.com

我发现最近的正则表达式是来自这里

代码语言:javascript
复制
^((?:.|\n)*?)((http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)([-A-Z0-9.]+)(/[-A-Z0-9+&@#/%=~_|!:,.;]*)?(\?[A-Z0-9+&@#/%=~_|!:‌​,.;]*)?)

但不幸的是,google.com没有通过。它需要以www.作为前缀。您能改进这个正则表达式使www.成为可选的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-08 15:25:39

下面的模式似乎与您的标准相匹配:

代码语言:javascript
复制
^(?:https?:\/\/(?:www\.)?|https:(?:\/\/)?)?\w+(?:[-.]\w+)+(?:\/[^\/\s]+)*$

regex演示。详细信息

  • ^ -字符串的开始
  • (?:https?:\/\/(?:www\.)?|https:(?:\/\/)?)? -一个可选的序列:
    • https?:\/\/(?:www\.)? - httphttps://,然后是可选的www.子字符串。
    • | -或
    • https:(?:\/\/)? - https:,然后是可选的//字符串。

  • \w+ -一个或多个单词字符
  • (?:[-.]\w+)+- .-的一个或多个序列后面跟着一个或多个单词字符
  • (?:\/[^\/\s]+)* -一个可选的/序列,然后是一个或多个字符,而不是/和空格。
  • $ -字符串的末端。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71035383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档