设置 rails 突出显示以仅匹配整个单词
Set rails highlight to match only entire words
我正在使用突出显示方法来标记文本中的单词。所以,我的问题是当我试图突出比其他人 "sub-words" 的小词时。例如:
highlight("a estimativa de tempo", ["tim", "oi"])
以及亮点returns:
"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"
突出显示助手接受匹配短语的正则表达式,因此您可以将每个短语包装在 \b 中,这是一个零长度的单词边界匹配器:
highlight("this is a test", [/\bis\b/])
=> "this <mark>is</mark> a test"
您会注意到只有独立的单词 "is" 被突出显示,而不是单词 "this".
中的 "is"
我也打算推荐@infused 的方法,但我会做一个小改动:
highlight("this Is a test", [/\bis\b/i])
=> "this <mark>Is</mark> a test"
这样它不区分大小写并且适合您的所有示例案例。
我正在使用突出显示方法来标记文本中的单词。所以,我的问题是当我试图突出比其他人 "sub-words" 的小词时。例如:
highlight("a estimativa de tempo", ["tim", "oi"])
以及亮点returns:
"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"
突出显示助手接受匹配短语的正则表达式,因此您可以将每个短语包装在 \b 中,这是一个零长度的单词边界匹配器:
highlight("this is a test", [/\bis\b/])
=> "this <mark>is</mark> a test"
您会注意到只有独立的单词 "is" 被突出显示,而不是单词 "this".
中的 "is"我也打算推荐@infused 的方法,但我会做一个小改动:
highlight("this Is a test", [/\bis\b/i])
=> "this <mark>Is</mark> a test"
这样它不区分大小写并且适合您的所有示例案例。