如何将换行符转换为<BR>标记?

AnA*_*ice 3 ruby regex ruby-on-rails 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.. 
Run Code Online (Sandbox Code Playgroud)

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

所以我尝试过:

 str = str.gsub("\r\n", '<br>')
Run Code Online (Sandbox Code Playgroud)

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

<div class="message">line 1<br><br>Line 2</div>
Run Code Online (Sandbox Code Playgroud)

怎么只做一个<BR>标签?

Ale*_*x D 7

str = str.gsub(/[\r\n]+/, "<br>")
Run Code Online (Sandbox Code Playgroud)

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


小智 6

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

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

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