设置rails高亮显示仅匹配整个单词

时间:2016-01-28 19:31:03

标签: ruby-on-rails highlight actionview actionviewhelper

我正在使用突出显示方法来标记文本中的单词。所以,我的问题是当我试图突出可能是“子词”的小词而不是其他词。例:

highlight("a estimativa de tempo", ["tim", "oi"])

亮点回归:

"a es<mark>tim</mark>ativa de tempo"

但我需要突出显示方法才能匹配整个单词。例:

highlight("a operadora tim", ["tim", "oi"]), returning:
"a operadora <mark>tim</mark>"

highlight("Oi anuncia", ["tim", "oi"]), returning:
"a operadora <mark>tim</mark>"

highlight("Operadora Tim declara", ["tim", "oi"]), returning:
"Operadora <mark>Tim</mark> declara"

2 个答案:

答案 0 :(得分:0)

高亮辅助器接受匹配短语的正则表达式,因此您可以将每个短语包装在\ b中,这是一个零长度的单词边界匹配器:

highlight("this is a test", [/\bis\b/])
=> "this <mark>is</mark> a test"

您会注意到,只有单词“is”会突出显示,而不是单词“this”中的“is”。

答案 1 :(得分:0)

我也会推荐使用@ infused的方法,但我做了一个小改动:

highlight("this Is a test", [/\bis\b/i])
=> "this <mark>Is</mark> a test"

这种方式不区分大小写,适合所有示例案例。