0

可能重复:
在单词边界处将文本换行成行

我需要从用户那里获取一个 textarea 输入,然后每 30 个字符将其分成多行。困难的部分是我还需要确保换行符发生在“”(空格)处,以免打断单词。

我最初试图解决这个问题的尝试是这样的:

if @square.text.length > 30
  text = @square.text[0, 31] + "\n" + @square.text[31, @square.text.length]
else
   text = @square.text
end

另外,我知道上面只处理需要分解一次的字符串。我需要最多六个换行符。

任何想法如何去做?

4

1 回答 1

2

word_wrap从文本助手中使用:

include ActionView::Helpers::TextHelper
# or, if you are in a controller
# helper :text

word_wrap(@square.text, :line_width => 30)
于 2012-10-08T22:49:49.717 回答