-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 に加えて、次のように「http(s)」なしで .cgi パスを許可する必要があることです。

123.45.678.543:30/cgi-bin/何とか/何とか.cgi

これを上記の式に追加する方法を教えてください。ありがとう。

4

1 に答える 1

2

あなたが投稿した RegExp は、あらゆるタイプの URL を検証するのに十分なほど一般的ではないように思えます。文字列が有効な URL であるかどうかを確認するための最適な正規表現は何ですか? をご覧ください。(特に@eyelidlessnessの答え)より精巧なものを見つけることができます。

URL の問題は、それが何らかの cgi ファイルを指していることではありません。問題は、少なくとも(おそらく(?)話している場合)、そうあるべきだということです

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

それに加えて、IP アドレスの数字は最大 255 までです。これらの修正があっても、投稿した正規表現を適用する資格はありませんが、これは正規表現の欠陥に対するもう 1 つのヒントにすぎません。

于 2012-07-02T18:48:05.467 に答える