首页 > web前端 > js教程 > 如何创建强大的正则表达式来检测带或不带'http://”前缀的 URL?

如何创建强大的正则表达式来检测带或不带'http://”前缀的 URL?

Linda Hamilton
发布: 2025-01-05 21:34:41
原创
650 人浏览过

How to Create a Robust Regular Expression for Detecting URLs with or without

如何构建全面的 URL 正则表达式

正则表达式模式是匹配特定文本格式的强大工具。使用正则表达式模式识别 URL 需要一丝不苟,以确保准确检测。

在您的情况下,尝试检测不带“http://”前缀的 URL 时会出现困难。为了解决这个问题,这里有一个增强的正则表达式模式:

https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)
登录后复制

模式细分:

  • 协议(可选):

    • https?匹配“http://”或“https://”(不区分大小写)。
  • 子域前缀(可选):

    • (www.) 与“www.”匹配。子域名前缀。
  • 域名:

    • [-a-zA-Z0-9@:%._ ~#=]{1,256} 匹配字母、数字和指定特殊字符的任意组合,最大长度为256 个字符。
  • 顶级域名:

    • 。[a-zA-Z0-9()] {1,6} 匹配顶级域(例如“.com”、“.org”),最大长度为6 个字符。
  • 路径和查询字符串(可选):

    • b([-a-zA-Z0 -9()@:%_ .~#?&//=]*) 捕获任何其他路径元素URL。

不带必需协议的替代正则表达式:

[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)
登录后复制

此版本删除了协议匹配组件,使其适合类似“www.google.com”的网址。

以上是如何创建强大的正则表达式来检测带或不带'http://”前缀的 URL?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板