javascript正则表达式绝对和相对URl

时间:2013-02-06 03:22:19

标签: javascript regex validation url-validation

是否有任何正则表达式将验证绝对URL和与Javascript相关的URl。

我确实有以下Regex,它对绝对URL工作得相当好,除了它强制要求HTTP部分的部分。我希望它是可选的。

这是Regex:

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

感谢

4 个答案:

答案 0 :(得分:4)

尝试

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

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

答案 1 :(得分:0)

此人接受以下内容:

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

但不是这样的

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

正则表达式为:

/(^(https?:\/\/|\/)(?:www\.|(?!www))?[^\s])/

答案 2 :(得分:0)

以下方法应该起作用:

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

example

答案 3 :(得分:-1)

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

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

但实际上,使用RegExp验证网址永远不会是esay。很多边缘案例,如'./page','.. / page'等。

仔细分析您的要求,记下主要的测试用例,写一个RegExp将它们全部传递出去。并且要小心表现。