如何将换行符转换为<br/>标签?

时间:2012-01-20 22:13:41

标签: ruby-on-rails ruby regex ruby-on-rails-3

鉴于textarea中的以下文字:

Line 1 stuff.. Line 1 stuff.. Line 1 stuff.. Line 1 stuff.. Line 1 stuff.. 

Line 2 stuff.. Line 2 stuff.. Line 2 stuff.. Line 2 stuff.. Line 2 stuff.. 

我想将新行转换为<BR>代码,而不是使用simple_format <P>代码......

所以我试过了:

 str = str.gsub("\r\n", '<br>')

问题是这是两个<BR>标签:

<div class="message">line 1<br><br>Line 2</div>

如何制作一个<BR>代码?

4 个答案:

答案 0 :(得分:7)

str = str.gsub(/[\r\n]+/, "<br>")

这会将任意数量的连续\r和/或\n字符转换为单个<br>

答案 1 :(得分:2)

最好的方法是使用simple_format(str)

simple_format()是一个辅助函数,它将包含新行和回车的整个字符串转换为<br>

参考:http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-simple_format

答案 2 :(得分:1)

这意味着你有两次出现“\ r \ n”。因此,您可以清理输入或预期正则表达式中的这种情况。

看看这个:Ruby gsub / regex modifiers?

答案 3 :(得分:0)

输入文本中有两个换行符。如果您希望有一个<br/>,请执行以下操作:

str = str.gsub("\r\n\r\n", '<br />');