dau*_*777 111 ruby ruby-on-rails
是否有一种Railsy方式将\n转换为<br>?
目前,我这样做:
mystring.gsub(/\n/, '<br>')
Run Code Online (Sandbox Code Playgroud)
Dan*_*nge 252
是的,rails具有simple_format与您正在寻找的完全相同的功能,并且稍微好一些,因为它还添加了段落标记.看到
http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-simple_format
例:
simple_format(mystring)
Run Code Online (Sandbox Code Playgroud)
请注意,它simple_format允许使用基本HTML标记,但也会传递sanitize删除所有脚本的文本,因此对于用户输入应该是安全的.
Tom*_*lak 40
您可以通过以下方式使其更加通用:
mystring.gsub(/(?:\n\r?|\r\n?)/, '<br>')
Run Code Online (Sandbox Code Playgroud)
这样你就可以覆盖DOS,*NIX,Mac和意外的无效行尾.
jom*_*omo 29
在处理用户输入时应该小心这一点.
simple_format插入<br>标签,但它将允许其他HTML标签!
使用simple_format时,<b>Hello</b>将呈现为" Hello ",您可能不希望这样.
相反,您可以使用<%= h(c.text).gsub("\n", "<br>").html_safe %>
h()将首先编码html,gsub替换换行符并html_safe允许<br>显示标记.
这将准确显示用户输入的内容.它还允许在例如评论中讨论html.
ber*_*ika 17
简单地使用
white-space: pre-line;
Run Code Online (Sandbox Code Playgroud)
在你的CSS和文本将换行换行.
| 归档时间: |
|
| 查看次数: |
47583 次 |
| 最近记录: |