Ruby TextHelper使用Regexp突出显示方法

时间:2011-10-06 22:15:54

标签: ruby-on-rails ruby

我正在尝试使用突出显示方法突出显示文本中的每个数字序列。我可以通过一组数字来实现这一点,但是这样每个数字都会被单独突出显示。我想强调整个序列。

是否可以将Highlight与Regexp一起使用?我收到以下错误:

highlight(text,/\d+/)

无法将Regexp转换为字符串

由于

1 个答案:

答案 0 :(得分:5)

不幸的是没有!但是你可以使用source of the highlight method作为灵感来编写你自己的助手,完全符合你的需要。

def highlight_digits(text)
  # Based on ActionView::Helpers::TextHelper#highlight
  highlighter = '<strong class="highlight">\1</strong>'
  matcher = /(\d+)(?!(?:[^<]*?)(?:["'])[^<>]*>)/
  text.gsub(matcher, highlighter).html_safe
end

如果您觉得舒服,可以向Rails提出补丁以包含此功能!