Javascript正则表达式中的条件

时间:2012-10-08 08:51:33

标签: javascript regex

我有一个JavaScript正则表达式来验证提交为

的网址
var regex = /^(?:https?|ftp)\:\/\/....

如果我想添加“file://”协议支持,后面有2个(或)3个斜杠,它就变成了

var regex = /^(?:https?|ftp|file)\:\/\/(\/?)....

问题是,它正在验证“http:///”也是如此。
有没有办法接受第三个斜杠只有“文件”协议存在而不编写单独的正则表达式?

2 个答案:

答案 0 :(得分:0)

您可能希望将file:测试与其他测试分开:

/^(?:(?:https?|ftp):\/\/[^/]+|file:\/\/\/?)...

答案 1 :(得分:0)

一种可能性是将其置于交替中:

var regex = /^(?:https?:|ftp:|file:\/?)\/\/....

在这种情况下,你需要在每次交替时添加冒号。