NEWS
[gelöst] CR LF durch <br> in einem String ersetzen
-
Hallo Forum,
ich versuche in einem DP der ein String ist, CR LF am Zeilenende durch <br> zu ersetzen um das ganze mit einem html-Widget darzustellen.
im Notepad++ kann ich einfach \r\n durch <br> ersetzen. Das funktioniert einwandfrei. Wenn ich das ganze mittels JS probiere klappt das nicht.status = getState('0_userdata.0.Status').val; status_br=status.replace(/\r\n/g, "<br>");
Anscheinend erkennt JS das CR LF nicht. Wenn ich mir den Inhalt des Strings kopiere und in Notepad++ oder einem Hex-Editor einfüge sehe ich CR LF bzw. 0Dh 0Ah.
Kann mir jemand einen Tip geben was ich falsch mache.Danke und Gruß
Dolomiti
-
status_br = status.replaceAll(/(\r\n|\n|\r)/g, "<br>");
-
@MCU
Super, das klappt. Verstehe nur noch nicht ganz warum ich \n und \r nochmal einzeln hinzufügen muss.
Im Original kommen immer CR mit LF zusammen am Zeilenende.
Anbei ein Screenshot so wie es im NPP aussieht.
-
@dolomiti Musst du nicht unbedingt, ist nur für den Fall, wenn man wirklich bei jedem LF auch ein BR haben möchte.
Du hattest nurreplace
und nichtreplaceAll
verwendet.
Sollte auch mit Deiner Variante funktionieren. -
@mcu
SoreplaceAll(/(\r\n)/g, "<br>");
geht´s nicht. Und ohne Klammern auch nicht. Egal. Deine Lösung funktioniert. Das ist die Hauptsache.
Danke
Dolomiti
-
@MCU
JS scheint das "\r\n" nicht richtig zu interpretieren. Wenn ich nur nach "\n" suche geht es.replaceAll("\n", "<br>");
"\r" alleine geht auch nicht.
-
@dolomiti
Das ganze hat mir keine Ruhe gelassen.
Ich habe das ganze mal unter Linux probiert und mir den Inhalt des DP anzeigen lassen. Es sieht so aus, dass im DP nut ein LF drin steht. Der DP wird von Proxmox mittels Simple-API befüllt und Proxmox läuft ja unter Linunx. Das erklärt warum es mit "\n" funktioniert.
Das Problem war wohl selber gemacht, da ich den Inhalt des DP in NPP eingefügt habe und der noch auf Windows-Zeilenende stand.