2

ハイライトメソッドを使用して、テキスト内の単語をマークしています。だから、私の問題は、「サブワード」になる可能性のある小さな単語を他の単語よりも強調しようとするときです。元。:

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"
4

2 に答える 2

1

@infused の方法も推奨するつもりでしたが、1 つだけ小さな変更を加えます。

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

このようにして、大文字と小文字が区別されず、すべてのサンプル ケースに適合します。

于 2016-01-28T19:52:19.277 に答える
0

ハイライト ヘルパーは一致フレーズの正規表現を受け入れるため、長さゼロの単語境界マッチャーである \b で各フレーズをラップできます。

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

スタンドアロンの単語 "is" のみが強調表示され、単語 "this" 内の "is" は強調表示されていないことに気付くでしょう。

于 2016-01-28T19:45:28.433 に答える