用于匹配 URL 的改进正则表达式
尝试从用户输入中检测和解析 URL 时,使用有效的正则表达式至关重要。就您而言,虽然您当前的表达式捕获了某些网址格式,但它无法考虑缺乏明确协议方案的网址,例如 www.google.com。
修订的正则表达式
要解决此问题并确保全面的 URL 匹配,请考虑使用以下修订后的正则表达式:
^(?=\S{1,255}$)(https?://)?[-a-zA-Z0-9@:%._\ ~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\ .~#?&//=]*)
正则表达式剖析
这个修改后的正则表达式是限制较少,将成功匹配 www.google.com 等网址以及具有显式协议的网址(例如 http://www.stackoverflow.com)。
示例实现 (JavaScript)
const regex = new RegExp(/(?=\S{1,255}$)(https?://)?[-a-zA-Z0-9@:%._\ ~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\ .~#?&//=]*)g); const url = 'www.google.com'; if (url.match(regex)) { console.log("URL successfully matched."); } else { console.log("URL did not match."); }
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3