4

重複の可能性:
URL に一致する適切な正規表現は何ですか?

次のようなサーバーから送信された文字列があります。

「ねえ、この写真を見てください http://example.com/fantastic.jpg、素敵ですね?」

次のような正規表現関数が必要です。

function returnUrl(text) {
    regex here ...
    return url;
}

私は正規表現が本当に苦手なので、助けを求めてここに来ています。下の写真を見て、私が何を意味するのかを理解してください。

stackOverflow 自動 URL 認識

これは、クリック可能な URL に挿入されたテキストを自動的に変更する stackOverflow です。jQuery / regex だと思います。

前もって感謝します。


編集:

言い忘れましたが、この正規表現はすべてのリンクではなく、画像 (jpg、png など) に対してのみ機能するはずです。

4

3 に答える 3

1

簡単なものは次のようになります。

https?://[\w-\.\?\#\/]+

完全なもの(私が使用するもの)は次のようになります。

[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?

最後の oeは、URL に一致する適切な正規表現は何ですか?から正確に来ています。

編集

画像への直接リンク用のシンプルなもの (ここを参照)

https?://[\w-\.\/]+(\.jpg|\.jpeg|\.png|\.bmp)
于 2012-08-28T08:39:17.270 に答える
1

次のように使用できます。

function returnUrl(text) {
     var reg = /[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi;
     var url = text.match(reg).toString();
     return url;
}

これがデモです:http://jsfiddle.net/4vBLH/

于 2012-08-28T08:41:45.200 に答える
0

StackOverflowの自動リンク動作を模倣する方法を確認する必要があります。

RegexBuddyライブラリからのURL正規表現(大文字と小文字を区別しないものとして使用):

\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]

実際の動作をご覧ください。

于 2012-08-28T08:45:03.560 に答える