2024-06-28
2024-06-28
HTML escape について。しょっちゅうわからなくなるので
- エスケープする -> 特殊文字に変換する -> ブラウザで
<
が<
で表示される - エスケープしない -> 特殊文字に変換しない -> ブラウザで
<
がそのまま表示される -><br>
を HTML タグとして解釈する
【初心者必見】htmlのエスケープの必要性と書き方 - WEBCAMP MEDIA
safe_join
https://api.rubyonrails.org/classes/ActionView/Helpers/OutputSafetyHelper.html#method-i-safe_join
HTML safe じゃない文字列もエスケープされ、HTML safe としてマークされてしまう
tag helper
https://api.rubyonrails.org/classes/ActionView/Helpers/TagHelper.html#method-i-tag
HTML tag を返す
> text = "#{'a' * 37}"
=> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
> max_length = 36
=> 36
# escaped ブラウザで <br> がそのまま表示される
# 特殊文字、なんか意味のある文字なんだなということで変換されて表示される
> helper.safe_join text.to_s.scan(/.{1,#{max_length}}/), '<br>'
=> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<br>a"
# not escaped (HTML tag)
# HTML tag としてブラウザでは「改行」として解釈される
> helper.safe_join text.to_s.scan(/.{1,#{max_length}}/), helper.tag.br
=> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<br>a"