2011-11-09 2 views
0

私は簡単なチャットをしています。ユーザーがサーバーにメッセージを送信するときに、このメッセージを解析します。 http://****が見つかるたびに、それをaタグに変換したいが、他のすべての文字をエスケープする必要があるので、ユーザーはHTMLを混乱させない。チャットでアンカーする "http://"

おそらくそれを得るには多くの方法があります。空想的な正規表現を使うと良いでしょう。何か案は?

Node.jsを使用しています。それがユーザに出力される前に、この機能によってチャットの各行の実行に関する

+6

@Neal:正規表現でプレーンテキスト中のURLを特定することは –

+0

@Neal結構です:私はちょうどこれが私の質問に関連しているか分かりません。 – freakish

+1

@Neal:それは何ですか?実際のstackoverflow投稿にリンクするのではなく、自分のブログにリンクして投稿のイメージを表示しますが、それ以上のテキストやコメントは表示されません。付加価値がありますか、またはあなたのブログを迷惑メールにしようとしていますか? – Konerak

答えて

1

方法:

function replaceURLWithHTMLLinks(text) { 
    var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; 
    return text.replace(exp,"<a href='$1'>$1</a>"); 
} 

出典:How to replace plain URLs with links?

+0

ほぼあります。しかし、同時に私は他の文字を逃したい。たとえば、「 test http://google.com」と入力すると、すべてのリンクが交換されます。 – freakish

+1

ああ、私はちょうど始めにメッセージ全体をエンコードしています*あなたのパーサーを使用してください。私はそれがうまくいくと思います。ありがとうございました! :) – freakish

関連する問題