我有一个JavaScript正则表达式来验证提交为
的网址var regex = /^(?:https?|ftp)\:\/\/....
如果我想添加“file://”协议支持,后面有2个(或)3个斜杠,它就变成了
var regex = /^(?:https?|ftp|file)\:\/\/(\/?)....
问题是,它正在验证“http:///”也是如此。
有没有办法接受第三个斜杠只有“文件”协议存在而不编写单独的正则表达式?
答案 0 :(得分:0)
您可能希望将file:
测试与其他测试分开:
/^(?:(?:https?|ftp):\/\/[^/]+|file:\/\/\/?)...
答案 1 :(得分:0)
一种可能性是将其置于交替中:
var regex = /^(?:https?:|ftp:|file:\/?)\/\/....
在这种情况下,你需要在每次交替时添加冒号。