我需要一个能让我验证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\-]+)*)$"
但我的问题是,除了常规网址,我需要允许.cgi路径,没有“http(s)”,如下所示:
123.45.678.543:30/cgi-bin/blah/blah.cgi
你能帮我解决一下如何将其添加到上面的表达式中吗? 感谢。
答案 0 :(得分:2)
在我看来,您发布的RegExp通常不足以验证任何类型的网址。看看What is the best regular expression to check if a string is a valid URL?(尤其是@ eyelidlessness的答案),或许可以找到更精细的答案。
您的网址问题并不是指向某个cgi文件。问题是它应该 - 至少(在你可能(?)谈论的情况下) - 是
http://123.45.678.543:30/cgi-bin/blah/blah.cgi
此外,IP地址中的数字最多可以为255。 即使进行了这些更正,它仍然无法使用您发布的RegExp,但这只是对RegExp缺陷的一个暗示。