在javascript json字符串中正确转义换行符

在javascript json字符串中正确转义换行符,javascript,json,Javascript,Json,我在JavaScript中有一个很长的JSON字符串。它包含多个\n,需要在客户端上使用以下内容进行转义: replace(/\n/g, '\\n'); 现在的问题是,这个replace()在我不想要的JSON字符串末尾添加了一个额外的换行符(结果是我的拆分(“\n”)将产生一个额外的空的无效行。那么,我如何正确地处理这个问题呢?我如何在split(“\n”)时正确地转义该字符串而不破坏其结构最终是否仍能正常工作 当前的字符串结构类似于:“testdata\ntestdata\ntestda

我在JavaScript中有一个很长的JSON字符串。它包含多个\n,需要在客户端上使用以下内容进行转义:

replace(/\n/g, '\\n'); 
现在的问题是,这个
replace()
在我不想要的JSON字符串末尾添加了一个额外的换行符(结果是我的拆分(“\n”)将产生一个额外的空的无效行。那么,我如何正确地处理这个问题呢?我如何在
split(“\n”)时正确地转义该字符串而不破坏其结构
最终是否仍能正常工作

当前的字符串结构类似于:“testdata\ntestdata\ntestdata”等

编辑:编辑,因为我似乎没有提供足够的信息:

  • 客户端从服务器接收字符串
  • 此字符串是一个JSON字符串,非常长。此字符串中的几个部分被“\n”分隔
  • 在客户端,我需要对字符串执行拆分(“\n”)以将其拆分为正好50行。但是我得到51行,因为在转义字符串后,在末尾添加了一个额外的\n行
  • 因此,我只接收e.data中的数据,然后执行
    replace(/\n/g,'\\n');
    ,然后对其执行split(\n')。仅此而已
  • 如何防止split()因正则表达式而中断

  • 我希望这能更好地解释我的问题。

    如果您只想拆分一个换行符分隔的字符串,则无需调用
    replace
    。下面的代码示例会修剪任何前导或尾随空格(包括换行符)并在
    \n
    上拆分。请注意,
    trim
    是在ECMAScript 5.1中添加的,在一些较旧的浏览器中不受支持。有关详细信息,请参阅此

    函数splitNewlineSeparatedString{
    返回s.trim().split(“\n”);
    }
    
    console.log(splitNewlineSeparatedString(“testdata\ntestdata\ntestdata\n\n”));
    我们猜不出执行此操作的代码…您的代码在哪里?David Thomas:编辑过的帖子。没有代码标记的替换()params是错误的…为什么需要重新转义所有新行?目的是什么?听起来好像问题不在正则表达式中。结尾的新行从一开始就在那里。当你双重转义它时,你只是双重转义一个已经存在的新行。使用
    String.trim()
    删除字符串开头和结尾的尾随空格(包括换行符)。更好的做法是从一开始就将JSON字符串作为数组发送。毕竟它是JSON。