遍历字符串会在Ruby中的字符之间添加空格

问题描述 投票:-2回答:2

如果对象存在数据库类型文本中,则我想遍历的对象中有一个字符串以查找特定字符(#)。所以我一个接一个地去检查它是否存在。但是当我这样做时,它会在字符之间显示额外的空白。相同的设置在php中工作正常。该行位于erb文件中。它显示在div中。如果我只是做

<%= feed.text %>

它显示正常,但是我不能检查它是否包含#。


预期输出:嘿

我得到的是:嗨

我该如何解决?

这是我的代码:

<div class='tweet-text'>                
   <% i = 0 %> 
   <%  while i < feed.text.length  do %>
        <%= feed.text[i] %>
        <% i += 1 %>
   <% end %>
</div>

目前,我只想使其正确显示,没有空白。如果找到#。并且因为有问题,我想将#颜色改为某种颜色。

ruby
2个回答
0
投票

每个字母之间有多个空格,这就是为什么用这种方式呈现空格的原因。

您的代码不是很像红宝石,但是如果您真的很想保持它的原样,则可以这样写:

<div class='tweet-text'>                
  <% i = 0 %> 
  <% while i < text.length  do %><%= text[i] %><% i += 1 %><% end %>
</div>

希望您会重新审视并改善它。


0
投票

实际上,我搜索了比上面更多的Ruby on Rails解决方案,因此对我来说,它可以显示任何#word作为链接,这要简单得多。

<div class='tweet-text'>                
    <%= highlight(feed.text, /#\w+/, highlighter: '<a href="search?q=\1">\1</a>') %>
</div>
© www.soinside.com 2019 - 2024. All rights reserved.