代码之家  ›  专栏  ›  技术社区  ›  Doug Neiner

在单词边界处将文本换行

  •  12
  • Doug Neiner  · 技术社区  · 14 年前

    1)我想用文字自动换行,使每行不超过56个字符。 有什么方法可以做到这一点,还是我需要自己动手?

    @comment_text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
    

    我的观点:

    <%= @comment_text.cool_string_function( 56 ) %>
    

    将呈现:

    Lorem ipsum dolor sit amet, consectetur adipisicing
    elit, sed do eiusmod tempor incididunt ut labore et 
    dolore magna aliqua.
    

    2)我希望将文本缩进4个空格,以便:

    <%= @comment_text.cool_string_function( {:width => 56, :indent => 4} ) %>
    

    将呈现:

        Lorem ipsum dolor sit amet, consectetur adipisicing
        elit, sed do eiusmod tempor incididunt ut labore et 
        dolore magna aliqua.
    
    2 回复  |  直到 14 年前
        1
  •  19
  •   jerodsanto    14 年前

    我相信你要找的功能是 word_wrap . 这样的方法应该有效:

    <%= word_wrap @comment_text, :line_width => 56 %>
    

    你可以把它和 gsub 要获得所需的缩进:

    <%= word_wrap(@comment_text, :line_width => 52).gsub("\n", "\n    ") %>
    

    但您可能应该将其转移到一个助手方法中,以保持视图的整洁。

        2
  •  9
  •   sawa    12 年前

    也许 word_wrap 帮手可以帮你。

    缩进可替换的文本 \n (换行符)换行符+4个空格。