Rails - 正则表达式帮助构建一个用<wbr />标记打破长单词的方法

时间:2011-02-21 18:13:59

标签: ruby-on-rails regex ruby-on-rails-3

Helo,我想传递一个html / text块,可以包含链接到方法中。该方法需要打破超过10个字符的单词。这是我到目前为止所做的:

def magic_format(str, len = 10)
 fragment = /.{#{len}}/
 str.split(/(\s+)/).map! { |word|
  (/\s/ === word) ? word : word.gsub(fragment, '\0<wbr />')
 }.join


 # AutoLink URLs
 str = auto_link(str, :html => { :target => '_blank' })

end

由于某种原因,gsub似乎不起作用,它不添加wbr标签。

思考?感谢

1 个答案:

答案 0 :(得分:0)

它的地图和正则表达式部分有效(不确定它是否是最好的方式,但它有效)。它只是没有改变str。这应该可以解决问题......

def magic_format(str, len = 10)
  fragment = /.{#{len}}/
  str = str.split(/(\s+)/).map! { |word|
    (/\s/ === word) ? word : word.gsub(fragment, '\0<wbr />')
  }.join

  auto_link(str, :html => { :target => '_blank' })
end