如何将带有新行的String转换为HTML列表?

时间:2012-06-24 11:43:34

标签: ruby-on-rails

我有一个包含多行的字符串。例如:

string = "line1\nline2\nline3"

我需要在HTML无序列表的页面上打印出来。

4 个答案:

答案 0 :(得分:2)

您可以使用@LeonidLukin建议的String#each_line或@jcubic建议的String#split + Array#join。我更喜欢以下jcubic的解决方案,因为他的代码在最后创建了一个空行:

<ul>
  <% string.each_line do |line| %>
    <li><%= line.chomp %></li>
  <% end %>
</ul>

答案 1 :(得分:0)

在Ruby中我会这样做:

"<ul><li>" + ("line1\nline2\nline3".split("\n").join("</li><li>")) + "</li></ul>"

答案 2 :(得分:0)

谢谢大家! 我是这样做的:

<ul>
<%
   string = "line1\nline2\nline3"
   lines = string.split("\n")
   lines.each do |line|
%>
  <li><%= line %></li>
<% end %>
</ul>

但现在我想尝试使用String.html#method-i-each_lin

答案 3 :(得分:0)

与split + join的答案相同,只有你可以使用gsub:

"<ul><li>"+"line1\nline2\nline3".gsub("\n", "</li><li>")+"</li></ul>"