2012-01-25 8 views
3

私は基本的に私自身のMarkdownパーサーを作成しています。私は文字列内のURLを検出し、それが有効なURLであればアンカータグでラップしたいと思います。例:テキストでURLを検索し、アンカータグで囲みます。

string = 'here is a link: http://google.com' 
# if string matches regex (which it does) 
# should return: 
'here is a link: <a href="http://google.com">http://google.com</a>' 

# but this would remain unchanged: 
string 'here is a link: google.com' 

これを行うにはどうすればよいですか?

私が例として使用できる既存のRubyマークダウンパーサーのコードを指し示すことができれば、ボーナスポイントです。一般的に

+0

プラグインこのjqueryのを使用できますか? 'http://'? 'https://'? 'ftp://'? 'irc://'? 'telnet://'? – Phrogz

+1

Kramdownでの作業方法は次のとおりです。

+0

注:最後のブラケットをそれを動作させるには上のリンクをクリックしてください。 –

答えて

10

:この特定のソリューションは、このテキストになりますことを

urls = %r{(?:https?|ftp|mailto)://\S+}i 
html = str.gsub urls, '<a href="\0">\0</a>' 

注:URLを見つけて、あなたのHTMLでそれらをラップする正規表現を使用するに

See more at http://www.google.com. 

を... ...

See more at <a href="http://www.google.com.">http://www.google.com.</a> 

URLを本当にどこで終了するかを調べるために正規表現を少し使いたい場合があります。

+0

それは本当にクールです。ありがとう –

関連する問題