ActionView::Helpers::TextHelper
def highlight(text, phrases, options = {}, &block)

説明

文字列の中の当てはまる部分を、<mark> で囲んで返します。

引数

値を変えると、ERB と HTML が変わります。

引数の phrases に当てはまる部分を、<mark> で囲みます。タグの中(<b> の名前や属性)は探しません。options の sanitize を渡さないときは、sanitize で <script> などを消してから探します。探すのは sanitize したあとの文字列なので(& は &amp; になっています)、& や amp を探すと、&amp; の中に当たります。
文字列は、大文字と小文字を区別せずに探します。配列なら、どれかに当てはまる部分を囲みます。正規表現は、そのまま使います。i を付けないと大文字と小文字を区別するので、/f\w+/ は Fish に当てはまりません。空の文字列なら、何も囲みません。
options= {}
"<strong>\\1</strong>"
<mark>\1</mark> の代わりに、渡した文字列で囲みます。\1(と \0)が、当てはまった部分になります。正規表現にグループがあれば、\2 から \9 がそのグループです。String#sub と違い、\& などはそのまま残ります。当てはまった部分は、エスケープしてから入れます(" は &quot; など。&amp; のような、もうエスケープした部分はそのまま)。デフォルトの <mark>\1</mark> も同じです。
false にすると、sanitize せずに探します。返す文字列は html_safe なので、<script> なども、エスケープせずにそのまま出ます。
ここにない options は、使いません。

ERB

直前との違い: 追加 削除 変更


          

HTML


          

プレビュー