2015-05-09 18 views
5

Ich versuche, Zeilenumbrüche in Pausen umzuwandeln. Aber aus irgendeinem Grund kann ich das nicht zur Arbeit bringen. Ich habe verschiedene Tests durchgeführt, und ich weiß, dass die Funktion ausgeführt wird, und dass die an die Funktion übergebene Variable definitiv eine Zeichenfolge ist. Es ist seltsam, dass das nicht funktioniert. Da ich genau die gleiche Funktion für Double Escaping Newlines verwende, bevor ich es an den Server sende. Ich habe viele Dinge ausprobiert und verstehe nicht, warum das nicht funktioniert.Fehler beim Konvertieren von Zeilenumbrüchen in Zeilenumbrüche

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); 

json: { "date": 1431199838, "name": "Root", "message": "test \ ntest"}

(Index): 167 Zeichenfolge, die in Funktion geht: test \ ntest

(Index): 173 placeBreaks zurück: test \ ntest

+1

Ihr Code funktioniert für mich verwenden können; vielleicht ist das \ n ein wörtliches und nicht wirklich ein Zeilenumbruch? Wie in der JS interpretiert es nicht als Zeilenumbruch, sondern ein wörtlicher Backslash und ein n. – Daedalus

+2

Es funktionierte für mich in der Browser-Konsole, aber erst nachdem ich es in '\\ n' geändert habe, also denke ich @Daedalus ist wahrscheinlich richtig. – cyk

+1

Danke für beide Antworten, mit den Informationen, die ich von euch bekommen habe, kann ich arbeiten. Und es funktioniert, aber ich würde gerne eine Antwort akzeptieren, die diese mehr independence erklären könnte; Warum liest JS das eigentlich als eine wörtliche Zeichenfolge? Ich ging davon aus, dass eine Saite eine Saite ist. Ich wusste nicht, dass JS Anthing als Literal analysierte. Thx – DDaems

Antwort

0

Wenn die Ausgabe test\ntest eine wörtliche "\\n" Zeichenfolge verwenden, statt newline Pause, dann sollten Sie /\\n/g anstelle von /\r?\n/g

0

Sie

ersetzen \ n mit \ r

versuchen, dies in vim Editor

%s/\\n/\r/gec 
Verwandte Themen