2

是否有任何正则表达式可以验证 JavaScript 的绝对 URL 和相关 URl。

我确实有以下正则表达式,它对绝对 URL 非常有效,除了它强制 HTTP 部分的部分。我希望它是可选的。

这是正则表达式:

/(http|ftp|https):\/\/[\w-]+(\.[\w-]+)+([\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-])?/;

谢谢

4

4 回答 4

4

尝试

/((http|ftp|https):\/\/)?[\w-]+(\.[\w-]+)+([\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-])?/;

它使(http|ftp|https):\/\/(http://) 部分是可选的

于 2013-02-06T03:24:00.703 回答
1

这个接受以下内容:

http://example.com
https://example.com.com
/mypage
/my/page/

但不是像

httpa://example.com
my/page/
www

正则表达式是:

/(^(https?:\/\/|\/)(?:www\.|(?!www))?[^\s])/
于 2019-05-10T17:58:03.797 回答
1

以下应该有效:

/^(https?:\/\/|\/)\w+\.[^\s]+$|^\/[^\s]*$/

例子

于 2020-11-12T09:46:42.723 回答
-1

快速回答,修改了 Arun 的回答以接受 '/page', '/page/subpage', 'page/subpage'

/(\/?[\w-]+)(\/[\w-]+)*\/?|(((http|ftp|https):\/\/)?[\w-]+(\.[\w-]+)+([\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-])?)/gi

但实际上,使用 RegExp 验证 url 从来都不是件容易的事。很多边缘案例,比如'./page','../page'等。

仔细分析你的需求,写下主要的测试用例,写一个正则表达式通过它们。并注意性能。

于 2013-02-06T06:12:31.327 回答