Javascript 无法将换行符转换为换行符

Javascript 无法将换行符转换为换行符,javascript,regex,Javascript,Regex,我正在尝试将换行符转换为换行符。但由于某种原因,我不能让它工作。我做了各种测试,我知道函数正在执行,传递给函数的变量肯定是字符串。奇怪的是,这不起作用。因为在将换行符发送到服务器之前,我使用完全相同的函数进行双转义。我已经尝试了很多东西,不明白为什么这不起作用 console.log(ev); var parsedJSON = JSON.parse(ev.data); console.log('string that goes in function:' + parsedJSON.message

我正在尝试将换行符转换为换行符。但由于某种原因,我不能让它工作。我做了各种测试,我知道函数正在执行,传递给函数的变量肯定是字符串。奇怪的是,这不起作用。因为在将换行符发送到服务器之前,我使用完全相同的函数进行双转义。我已经尝试了很多东西,不明白为什么这不起作用

console.log(ev);
var parsedJSON = JSON.parse(ev.data);
console.log('string that goes in function:' + parsedJSON.message);
//typeof(parsedJSON.message); string
var bericht = placeBreaks(parsedJSON.message);
    function placeBreaks(str)  {
        return str.replace(/\r?\n/g, "<br />");
    }
    console.log('string being returned: ' + bericht);
console.log(ev);
var parsedJSON=JSON.parse(ev.data);
log('函数中的字符串:'+parsedJSON.message);
//typeof(parsedJSON.message);一串
var bericht=placeBreaks(parsedJSON.message);
函数placeBreaks(str){
返回str.replace(/\r?\n/g,“
”); } log('返回的字符串:'+bericht);
json:{“日期”:1431199838,“名称”:“根”,“消息”:“测试\测试”}

(索引):167函数中的字符串:test\n测试


(索引):173个换行符返回:test\ntest

如果输出是
test\ntest
使用文本
“\\n”
字符串,而不是换行符,那么您应该使用
/\\n/g
而不是
/\r?\n/g

您可以使用

替换为\r\n

在vim编辑器中试试这个

%s/\\n/\r/gec 

你的代码对我有用;也许\n是文字,而不是实际的换行符?在js中,它不是一个换行符,而是一个反斜杠和一个n。它在浏览器控制台中对我有效,但只有在我将其更改为
\\n
之后,我认为@Daedalus可能是正确的。感谢你们的回复,我从你们那里得到了信息,我可以工作了。让它工作起来,但是我愿意接受一个可以解释这一点的答案,更不体面;为什么JS会将其作为文本字符串读取?我是从假设一根弦就是一根弦开始的。我不知道JS将anthing解析为文字。ThxWow,这真的很奇怪,这意味着您的初始JSON确实包含了
\\n
——它不应该包含。而是检查它来自何处,并尝试修复它。@DDaems为了编写一个解决这个问题的答案,我们需要(或者至少我会)首先看看生成json的方式。