【问题标题】:Replacing \n with <br> tags用 <br> 标签替换 \n
【发布时间】:2013-11-04 11:33:17
【问题描述】:

我有一些用户提供的文本,我想在浏览器中正确显示(新行替换为&lt;br/&gt;-tags)。我希望所有其他 HTML 标记都被转义。最好的方法是什么?

【问题讨论】:

  • 如果没有提供一些代码,这真的很难提供帮助。根据我的经验,即使是带有 \n 的字符串值也会在浏览器中正确显示。例如,我的 String 类型的 Json 数据在浏览器中显示格式正确,而无需使用
  • @cYn 我不知道您使用的是什么浏览器,但我的浏览器都不会将 \n 显示为新行。
  • 这是我需要查看一些代码的地方。您真的必须在 Java 代码中附加“\n”吗?或者您是否允许用户只按回车键并将用户输入的所有文本存储在字符串中?

标签: playframework playframework-2.2


【解决方案1】:

不是最漂亮的解决方案,但这会奏效。如果视图接受字符串参数str,那么@Html(HtmlFormat.escape(str).toString.replace("\n", "&lt;br /&gt;")) 将首先转义字符串,然后将所有\n 实例替换为&lt;br /&gt;,最后将其转换回html,这样Play 就不会尝试转义了转义字符。如果您还想转义 \r 或 \r\n,您可以将另一个 replace 链接到其上,或者使用正则表达式。

【讨论】:

  • 好吧,我原以为框架会为这种常见的用例提供一些实用程序。无论如何,很高兴知道至少有一种简单的方法可以访问 HTML“转义符”。谢谢。
  • 我在 Play API 中找不到任何似乎更好的选择,但也许有一个。为方便起见,最好将其包装到另一个函数中。
【解决方案2】:

首先转义文本,然后将换行符替换为&lt;br&gt;。 &lt;br&gt; 不会被这样替换。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    • 2015-09-03
    • 2015-05-21
    相关资源
    最近更新 更多