\ n을 변환하는 Railsy 방법이 <br>
있습니까?
현재 다음과 같이하고 있습니다.
mystring.gsub(/\n/, '<br>')
\ n을 변환하는 Railsy 방법이 <br>
있습니까?
현재 다음과 같이하고 있습니다.
mystring.gsub(/\n/, '<br>')
답변:
예, rails는 simple_format
당신이 찾고있는 것을 정확히하고 단락 태그를 추가하기 때문에 약간 더 좋습니다. 보다
http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-simple_format
예:
simple_format(mystring)
simple_format
기본 HTML 태그 를 허용하지만 sanitize
모든 스크립트를 제거하는 텍스트도 전달 하므로 사용자 입력에 안전해야합니다.
simple_format
제공된 텍스트를 <p>
태그로 자동으로 래핑하며이 기능을 피할 수 없다는 점에 유의해야합니다 .
javascript:alert(\no!\)
참조에 주어진 것과 같은 특별한 구문을 해석하는 Rails에 의존합니다 . 악의적 인 해커가 작업 할 수있는 무한한 변형과 향후 변형이있을 수 있습니다.
wrapper_tag
변화 할 수 있도록 옵션을 <p>
다른 용도 태그
다음을 수행하여 더 일반적으로 만들 수 있습니다.
mystring.gsub(/(?:\n\r?|\r\n?)/, '<br>')
이렇게하면 DOS, * NIX, Mac 및 실수로 인한 잘못된 줄 끝을 다룰 수 있습니다.
simple_format
하려면 해당 정규식에서 분할 할 수 있습니다.를 사용 map
하여 여는 p
태그 와 닫는 태그로 문자열을 감은 다음 조인하십시오. mystring.split(/(?:\n\r?|\r\n?)/).map {|s| "<p>#{s}</p>"}.join
나는 그것을 테스트하지는 않았지만 그것을해야합니다.
<%= sanitize(planning.benefits.split(/(?:\n\r?|\r\n?)/).map {|x| "<li class='collection-item'>#{x}</li>"}.join) %>
.. 그리고 그것은 매력 부후처럼 작동합니다!
mystring
임의의 HTML이 포함될 수 있습니다.
사용자 입력을 처리 할 때주의해야합니다. 태그를
simple_format
삽입 <br>
하지만 다른 HTML 태그를 허용합니다 !
simple_format을 사용하면 <b>Hello</b>
" Hello " 로 렌더링되므로 원하지 않을 수 있습니다.
대신 <%= h(c.text).gsub("\n", "<br>").html_safe %>
h()
html을 먼저 인코딩 gsub
하고 줄 바꿈을 대체 html_safe
하고<br>
태그가 표시 될 수 있습니다.
사용자가 입력 한 내용이 정확히 표시됩니다. 예를 들어 주석에서 html을 토론 할 수도 있습니다.
simple_format
기본 HTML 태그를 허용 하지만을 통해 텍스트도 전달하므로 sanitize
잠재적으로 악의적 일 수있는 모든 항목이 제거 된다는 점에 유의해야합니다 . apidock.com/rails/ActionView/Helpers/TextHelper/simple_format
mystring.gsub(/\r\n|\r|\n/, '\n')
나를 위해 일했다