”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何使用正则表达式检测 URL(包括裸 URL)?

如何使用正则表达式检测 URL(包括裸 URL)?

发布于2024-12-20
浏览:734

How Can I Use Regular Expressions to Detect URLs, Including Naked URLs?

使用正则表达式检测 URL

您当前的代码无法匹配缺少“http://”前缀的裸 URL。为了解决这个问题,可以考虑采用综合正则表达式:

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

此增强型表达式包括以下功能:

  • 它确保 URL 以“http://”、“ https://”,或什么都没有。
  • 它允许通过包含“(www.)”作为可选前缀来创建子域。
  • 它支持最多 256 个字符的域名长度和顶级域最多 6 个字符。

对于那些在匹配中不需要 HTTP 协议的人,可以使用替代表达式:

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

要演示这些表达式的功能,请查看在线测试工具:http://regexr.com?37i6s(对于第一个表达式)或http://regexr.com/3e6m0(对于限制性较小的表达式)。

这是使用更全面的正则表达式的 JavaScript 实现示例:

const expression = /[-a-zA-Z0-9@:%._\ ~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\ .~#?&//=]*)/gi;
const regex = new RegExp(expression);
const t = 'www.google.com';

if (t.match(regex)) {
  alert("Successful match");
} else {
  alert("No match");
}
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3