在数据库</div>的<div>标记中显示换行符

时间:2010-09-16 03:42:25

标签: java jquery database line-breaks

我必须在&lt;中显示来自数据库的文章。 DIV&GT;标签。本文从textarea插入到数据库中。我的问题是:我无法准确显示我从textarea插入的结构(包括换行符)

我尝试使用以下代码将输入字符替换为&lt; BR&GT;标签,但它没有工作

<div id="tmpId">${f:h(dto.accPassage)}</div>

<script>
    $(function(){
        $('#tmpId').html($('#tmpId').html().replace(/\n/g, '<br />'));
    })
</script>

我想知道是否有人可以给我一些提示来解决这个问题。

非常感谢。

5 个答案:

答案 0 :(得分:9)

如果您希望它与数据库中的完全,那么只需将其呈现在<pre>标记内,而不是<div>

<pre id="tmpId">${f:h(dto.accPassage)}</pre>

这将保留所附文本块中的确切格式。

答案 1 :(得分:2)

由于您是从数据库中检索它的,为什么它是客户端的,而不是在从数据库中检索数据时立即进行替换?不确定你在使用什么(虽然这是无关紧要的,因为这可以用任何语言完成)但在PHP中,假设$output是你的数据库结果,那就像

一样简单
$output = nl2br($output);

希望这有帮助!

答案 2 :(得分:0)

由于您使用的是java,因此在从数据库中检索数据后,您可以随时编写以下内容来替换新行。

public static String nl2br(String s) {
    return s.replaceAll("\n","<br/>");
}
// usage
nl2br("some\ntext"); //will return "some<br/>text"

答案 3 :(得分:0)

使用CSS正确渲染/ n:

<span style="white-space: pre-line">Hi! next line, next line.</span>

以您的情况

<div id="tmpId" style="white-space: pre-line">${f:h(dto.accPassage)}</div>

答案 4 :(得分:-1)

<br>没有结尾斜杠。