使用JavaScript写入HTML时的换行符问题

使用JavaScript写入HTML时的换行符问题,javascript,jquery,json,Javascript,Jquery,Json,我正在使用常规文本框作为文本输入,用户在其中写入他们的评论。然后,我使用JQuery和JSON将数据发送到服务器,然后将其插入数据库 当我想显示这个文本时,我使用jQuery下载它,准备HTML并在浏览器中显示它,但是没有新行 如何保留用户输入的任何新行,以便它们显示在浏览器中 编辑: 问题是,当我执行警报$('.detailsCommentContent').val()时,我可以在警报窗口中看到换行符,但当我将其作为GET参数传递时: insertComment.aspx?id=10&cont

我正在使用常规文本框作为文本输入,用户在其中写入他们的评论。然后,我使用JQuery和JSON将数据发送到服务器,然后将其插入数据库

当我想显示这个文本时,我使用jQuery下载它,准备HTML并在浏览器中显示它,但是没有新行

如何保留用户输入的任何新行,以便它们显示在浏览器中

编辑:

问题是,当我执行警报$('.detailsCommentContent').val()时,我可以在警报窗口中看到换行符,但当我将其作为GET参数传递时:

insertComment.aspx?id=10&content=“+$('.detailsCommentContent').val()”


然后在url中没有换行符:(

您想在哪里显示文本?在文本区域还是直接在页面上


如果在页面上,当从db获取文本并将其打印到页面上时,您必须将换行符转换为标签。

只需执行以下操作:

theStringYouWantToFormat.Replace(char.ConvertFromUtf32(13),“
”)
在使用javascript将HTML写入页面之前,请确保使用

标记替换所有换行符。下面是一个简单的字符串扩展,允许您使用javascript()完成此操作:

用法:

var htmlString = newlineString.NewlineToBR();

然后将新字符串插入HTML。

我认为这取决于您使用的编码。unicode和ascii之间的区别或类似的东西。我已经有一段时间没有做过类似的工作了,但我认为这归结为两个选项

  • 在保存和加载时匹配编码(我们发现其中一个是ascii,另一个是unicode)
  • 保存时将所有新行字符替换为任意值,加载时将其调回

  • 将其标记为可能的副本too@TimPost不确定当链接的问题在c#codebehind中进行时,为什么它会被关闭为完全相同的副本,而这个问题是使用javascript和一个稍微不同的场景进行的,因为它正在注入HTML,并且需要在注入之前对其进行预格式化。@Kelsey我认为它更像是一个以问题为中心的问题围绕HTML本身(以及其他一些打了标记的用户),因为我是唯一一个真正投票关闭它的人,所以我将继续并重新打开这个问题。
    String.prototype.NewlineToBR = function() {
        return this.replace( /\r\n|\r|\n/g, br || '');
    }
    
    var htmlString = newlineString.NewlineToBR();