首页 > web前端 > js教程 > 如何使用正则表达式检测 URL(包括裸 URL)?

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

DDD
发布: 2024-12-12 19:06:15
原创
202 人浏览过

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");
}
登录后复制

以上是如何使用正则表达式检测 URL(包括裸 URL)?的详细内容。更多信息请关注PHP中文网其他相关文章!

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