-1

我需要一个可以让我验证 Url 的正则表达式。我找到了这个:

"^(http(?:s)?\:\/\/[a-zA-Z0-9\-]+(?:\.[a-zA-Z0-9\-]+)*\.[a-zA-Z]{2,6}(?:\/?|(?:\/[\w\-]+)*)(?:\/?|\/\w+\.[a-zA-Z]{2,4}(?:\?[\w]+\=[\w\-]+)?)?(?:\&[\w]+\=[\w\-]+)*)$"

但我的问题是,除了常规 url,我还需要允许 .cgi 路径,没有“http(s)”,如下所示:

123.45.678.543:30/cgi-bin/blah/blah.cgi

您能帮我弄清楚如何将其添加到上面的表达式中吗?谢谢。

4

1 回答 1

2

在我看来,您发布的 RegExp 似乎不足以验证任何类型的 URL。看看检查字符串是否为有效 URL 的最佳正则表达式是什么?(尤其是@eyelidlessness 的回答)也许可以找到更详细的答案。

您的 URL 的问题不在于它指向某个 cgi 文件。问题是它应该——至少(在你可能(?)谈论的情况下)——是

http://123.45.678.543:30/cgi-bin/blah/blah.cgi

此外,IP 地址中的数字最多可以是 255。即使进行了这些更正,它仍然不符合应用您发布的 RegExp 的条件,但这只是对您的 RegExp 错误的又一提示。

于 2012-07-02T18:48:05.467 回答