RailsでHTMLスクリプトをエンコードする
概要
HTMLスクリプトをエンコードしたい。
次のようなテキストがあります:
"<a href="https://www.w, <script></script>"
デコードだけしたい
< and > to < and >.
次のような方法があります。
def name
a = [last_name.to_s + ',', first_name].compact.join(' ')
Loofah.fragment(a).text(encode_special_chars: false)
end
ただし、Loofah.fragment を使用すると、次のように表示されるすべての HTML スクリプト広告がデコードされます。
"<a href=\"https://www.w, <script></script>" but I want only < and >
誰か助けてくれませんか。
解決策
以下の例のように、場合によっては文字列置換メソッドを使用できます。
"<a href="https://www.w, <script></script>".gsub("<","<").gsub(">",">")