1

我有一个多行的字符串。例子:

string = "line1\nline2\nline3"

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

4

4 回答 4

2

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

<ul>
  <% string.each_line do |line| %>
    <li><%= line.chomp %></li>
  <% end %>
</ul>
于 2012-06-24T19:34:55.413 回答
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

于 2012-06-25T09:23:44.513 回答
0

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

"<ul><li>"+"line1\nline2\nline3".gsub("\n", "</li><li>")+"</li></ul>"
于 2012-06-25T12:06:01.350 回答
0

在 Ruby 中,我会这样做:

"<ul><li>" + ("line1\nline2\nline3".split("\n").join("</li><li>")) + "</li></ul>"
于 2012-06-24T11:50:17.100 回答