- ベストアンサー
textareaの改行の仕方について
文字変数noteには<br>を含むのですが、 下記のプログラムを実行すると<br>がそのままテキストエリアの中に 表示されます。<br>を\r\nや\nに変換しても、それらがそのまま表示されます。 note変数の<br>の箇所で改行してやるには、<br>をどの文字と置換すればいいのでしょうか? print %Q{<textarea rows="5" cols="100" name="title2">#{note}</textarea>}
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
note.gsub!(/<br>/,'\n') ではなく note.gsub!(/<br>/,"\n") としてみてください。 メタ文字の展開は二重引用符です。 また、 > p noteで確認すると aaa<br>bbb が aaa\\nbbb となっていました。 pメソッドはオブジェクトの内容を確認するためのもので、おそらく文字列自体は、実際は「aaa\nbbb」だと思います。 このような場合はprintを使ったほうがいいとおもいます。
その他の回答 (1)
- taseki
- ベストアンサー率66% (155/233)
環境などが解りませんが、HTMLのtextarea内での改行は、\nなど、つまりそのまま改行コードを出力すればOKです。 つまり、以下のように出力されれば改行されます。 <textarea>1行目 2行目</textarea> > \r\nや\nに変換しても、それらがそのまま表示されます どこかでエスケープされているのでは。
補足
環境はruby1.8.2です。 確かに note.gsub!(/<br>/,'\n') のあと、 p noteで確認すると aaa<br>bbb が aaa\\nbbb となっていました。 gsubは勝手にエスケープされるのでしょうか? 対処法があれば教えてください。
お礼
お礼が遅れて申し訳ありません。 二重引用符を利用すると、問題なく動作しました。 ありがとうございました。