2011-10-06 57 views
2

我想突出使用突出显示方法的文本中的每个数字序列。我可以通过一系列数字来实现这一点,但这样每个数字都会单独突出显示。我想强调整个序列。红宝石TextHelper高亮方法与正则表达式

是否可以在正则表达式中使用突出显示?我收到以下错误:

highlight(text,/\d+/) 

不能转换正则表达式为String

感谢

回答

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提出一个补丁以包含此功能!

+0

完美,谢谢! – luizbranco