-3

重複の可能性:
プレーンな URL をリンクに置き換えるには?

テキスト入力を (javascript 経由で) 解析してすべての URL を検索し、それらをリンク (タグをラップ) してユーザーがクリックできるようにすることで、ユーザーの生活を少し楽にしようとしています。Facebook や SO でさえ、私が探しているもののアイデアを提供するために似たようなことをしています。

function censorLinks(text) {
    return text.replace(
        new RegExp('(https?://[^\\s]+)', 'g'),
        '<a href="$1" target="_blank">$1</a>'
    );
}

すべてのプロトコルをサポートする必要はありません。http と https は今のところ見つかっていると思います。http://空白までのすべてが URL であると想定しています。これはほとんど機能しますが、小さな問題が 1 つあります。URL がピリオドで終わる場合、ピリオドが含まれます。有効な URL だと思いますが、私の状況ではありそうにないと思います。生理を予防するには?

4

1 に答える 1

1

@Truthが言ったように、これは重複した投稿かもしれませんが...

私は最近似たようなことをしていましたが、これをテストしていませんが、おそらくこれはうまくいくでしょう...

    var email = /(\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6})/gim;
    var url = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;

    function convert(input) {
        return input
            .replace(url,'<a href="$1" target="blank">$1</a>')
            .replace(email, '<a href="mailto:$1">$1</a>');
    }

編集:タイプミスを修正

于 2012-08-28T21:00:32.223 に答える