1

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

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

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

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

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

4

2 回答 2

0

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

/^(?:(?:https?|ftp):\/\/[^/]+|file:\/\/\/?)...
于 2012-10-08T08:55:41.493 回答
0

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

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

在这种情况下,您还需要在每个交替中添加冒号。

于 2012-10-08T09:00:40.740 回答