【发布时间】:2020-04-28 15:04:41
【问题描述】:
我正在尝试以多种格式验证 URL。 例如:
https://www.google.com OK
http://www.google.com OK
www.google.com OK
htt://www.google.com
://www.google.com
https://google.com OK
http\\www.google.com
http:\\www.google.com
http:\\www.google.com
http://computerName/abc/MenuItems.aspx OK
https://computerName/abc/MenuItems.aspx OK
http://www.a.com/abc/ms.aspx?Id=13&(Not.Licensed.For.Production)= OK
http://www.a.com/abc/ms.aspx?Id=13 OK
我正在使用这个正则表达式
^(?:https?:\/\/(?:www\.)?|www\.)[a-z0-9]+(?:[a-zA-Z0-9_\-/\.]+)*(?::[0-9]{1,5})?(?:\/[a-z0-9]+)*(?:\.[a-z]{2,5})?$
但最后两项不行。我如何也可以验证没有 www 和例如(.com)的 url 我试图删除部分(我认为验证 .com 但没有成功。
它几乎可以工作,但发现最后两个不起作用的新案例 这是我的示例https://regex101.com/r/w3dQSl/5
【问题讨论】:
-
试试
^https?:\/\/[a-z0-9]+(?:[-.][a-z0-9]+)*(?::[0-9]{1,5})?(?:\/[a-z0-9]+)*(?:\.[a-z]{2,5})?$regex101.com/r/nQqxyy/1 -
只有一个问题。这个 www.google.com 返回 false 并且是一个有效的 URL。
-
那么你可以匹配 http:// 和可选的 www 部分,或者只匹配 www 部分 regex101.com/r/w3dQSl/1
-
@Thefourthbird 发现了一个不起作用的新案例 :( 尝试完成但没有成功。接下来将发布更新 regex101
标签: regex