2011-08-07 3 views
9

私はjavascriptを経由して引き出し、より多くのHTMLが優しい何かに翻訳イムXMLフィードを持っていますが、イムは、私はこのキャリッジリターンをJavascriptの<br /> htmlタグに変換しようとしていますか?

text = text.replace('\r','<br />'); 
ような何かをしようとしたHTMLのBRタグ

にキャリッジリターンを変換する方法に追いつい

〜no avail ..

アイデアはありますか?

+3

'\ r'ではなく' \ n'を試しましたか? – icktoofay

答えて

18

Javascriptの置換機能は、一致条件として文字列を使用する場合にのみ最初の発生を置き換えます。すべてを置き換えるには、正規表現を使用することができます。

この

text = text.replace(/(\r\n|\n|\r)/g,"<br />"); 

のようなもの希望このことができますしてみてください。

1

これを試してみてください:

text = text.replace(/\r\n|\r|\n/g, '<br />'); 
0

手動でフィードを見てみる必要があります。おそらく、\rよりも別のEOL(End of Line)タイプを使用しています。

また、すべてのEOLタイプを置き換えるには、replace()関数で正規表現を使用する必要があります。あなたは正しいEOLタイプを見つけたら、このようにそれを使用します。

text = text.replace(/<type here>/g, '<br />'); 

(もちろん、あなたが見つかったEOLタイプで<type here>を交換する必要が

6

改行文字の代わりにキャリッジリターンがあるかもしれません私は。。 <br />\r\n\r、そして\nのすべてのインスタンスを置き換えますが、と\r\nを置き換えることはありません

text = text.replace(/\r\n?|\n/g, '<br />'); 

:これを使用します2つの休憩は、望ましい行動である。

13

あなただけの内部で行っている正確にHTML <textarea>要素のように、要素のCSS white-space:preを適用することができます:

<span style="white-space:pre">your text \n will \n be \n on multiple \n lines</span> 

(注:クラスはスタイルよりも推奨され、上記だけでキックオフの一例です)

+0

優秀な提案 - 私は "ホワイトスペース:プリライン"を使用して目的の効果を得ました(Ref:https://developer.mozilla.org/en-US/docs/Web/CSS/white-space) –

+1

'white -space:pre-line'は行だけを保持し、他の空白を保存しない場合はチケットです。 – krock

関連する問題