2013-11-04 3 views
5

브라우저에서 올바르게 표시하고 싶은 사용자가 제공하는 텍스트가 있습니다 (새 줄은 <br/> 태그로 바뀜). 다른 모든 HTML 태그를 이스케이프 처리하고 싶습니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? n을 <br> 태그로 바꾸기

+0

일부 코드가 제공되지 않으면 도움이 될 수 없습니다. 내 경험에 의하면 \ n 문자열 값을 브라우저에서 올바르게 나타납니다. 예를 들어, 문자열 유형의 Json 데이터는 사용하지 않아도 브라우저에서 올바르게 표시됩니다.
cYn

+0

@cYn 사용중인 브라우저를 알 수는 없지만 어느 것도 내 선으로 표시되지 않습니다. –

+0

여기에 몇 가지 코드가 필요했습니다. 실제로 Java 코드에 "\ n"을 추가해야합니까? 아니면 사용자가 enter 키를 눌러 사용자가 문자열에 입력 한 텍스트를 모두 저장하도록 허용 했습니까? – cYn

답변

11

가장 좋은 해결책은 아니지만이 방법이 효과적입니다. 보기가 문자열 매개 변수 str을 허용하면 @Html(HtmlFormat.escape(str).toString.replace("\n", "<br />"))은 먼저 문자열을 이스케이프 처리하고 \ n의 모든 인스턴스를 <br />으로 바꾼 다음 Play가 이미 이스케이프 된 문자를 이스케이프 처리하지 않도록 마지막으로 html로 변환합니다. 또한 \ r 또는 \ r \ n을 이스케이프하고 싶다면 다른 replace을 연결할 수도 있고 대신 정규 표현식을 사용할 수도 있습니다.

+0

글쎄, 나는 프레임 워크가 그러한 일반적인 유스 케이스에 대해 몇 가지 유틸리티를 제공 할 것으로 기대했을 것이다. 어쨌거나, HTML "escape"에 접근하는 최소한의 방법이 있다는 것을 아는 것은 좋은 일입니다. 감사. – szymond

+0

더 나은 옵션처럼 보인 Play API에서 찾을 수없는 항목이 하나 있지만 그 중 하나가있을 수 있습니다. 편의상이 함수를 다른 함수로 래핑하는 것이 좋습니다. –

0

먼저 텍스트를 이스케이프 처리 한 다음 줄 바꿈을 <br>으로 바꿉니다. <br>은이 방법으로 대체되지 않습니다.

관련 문제