我有一个多行的字符串。例子:
string = "line1\nline2\nline3"
我需要在我的页面上以 HTML 无序列表的形式打印出来。
您可以使用@LeonidLukin 建议的String#each_line 或@jcubic 建议的String#split + Array#join。与 jcubic 的解决方案相比,我更喜欢以下解决方案,因为他的代码最后会创建一个空行项目:
<ul>
<% string.each_line do |line| %>
<li><%= line.chomp %></li>
<% end %>
</ul>
谢谢大家!我是这样做的:
<ul>
<%
string = "line1\nline2\nline3"
lines = string.split("\n")
lines.each do |line|
%>
<li><%= line %></li>
<% end %>
</ul>
但现在我想尝试使用String.html#method-i-each_lin
与 split+join 的答案相同,只有您可以使用 gsub:
"<ul><li>"+"line1\nline2\nline3".gsub("\n", "</li><li>")+"</li></ul>"
在 Ruby 中,我会这样做:
"<ul><li>" + ("line1\nline2\nline3".split("\n").join("</li><li>")) + "</li></ul>"