2017-11-27 2 views
0

Ich arbeite an einem System, wo Kommentare alle in einem großen Kommentar Textfeld protokolliert werden. Ich muss diese Teile auseinander spalten, damit sie am vorderen Teil schöner aussehen ... weil es gerade schrecklich ist.Teilen von TextArea Ausgabe basierend auf Kontext

Allerdings scheint es mir Probleme zu haben, die Daten zu erfassen und sie mit javascript/jquery zu zerlegen.

Die Daten kommen so heraus und es wird jedes Mal so formatiert.

"Fri Jan 16 12:36:47 EST 2015 
Entered by username - Persons name 

This is the test comment 

Sat Jan 17 2:16:00 EST 2015 
Entered by username - Persons name 

And this us another comment that could be very long and very redundant because these comments can be like that." 

Also ich brauche dich in drei verschiedene Abschnitte aufgeteilt. Datum, eingegeben von und dann der Kommentar.

Ich habe versucht, String Spagat, aber das scheint nur durch Worte Spaltung zu sein, auch wenn ich versuche, \n oder \s

jede Hilfe reizend wäre. https://jsfiddle.net/wz5z2dzo/1/

+0

Können die Kommentare mehrere Zeilen enthalten? Oder sind sie immer auf einer langen Textzeile? Grund ich frage ist, dass Sie etwas brauchen, um diese aufzuteilen. Zeilenumbrüche wären der naheliegendste Weg. – zfrisch

Antwort

1

Anführungszeichenfolgen (einzeln oder doppelt) unterstützen keine wörtlichen neuen Zeilen. Versuchen Sie, ein Vorlagenliteral zu verwenden. Ich bin mir nicht sicher, warum das Teilen durch ein bestimmtes Token nicht für Sie funktioniert ...

Unten ist eine Lösung. Ich spalte Zeile für Zeile, leere Zeilen und iteriere dann um 3s.

const nar = `Fri Jan 16 12:36:47 EST 2015 
 
Entered by username - Persons name 
 

 
This is the test comment 
 

 
Sat Jan 17 2:16:00 EST 2015 
 
Entered by username - Persons name 
 

 
And this us another comment that could be very long and very redundant because these comments can be like that.`; 
 

 
const lines = nar.split("\n").filter(line => line); 
 
const comments = []; 
 

 
for (let i = 0; i < lines.length; i += 3) 
 
    comments.push({ 
 
    date: lines[ i ], 
 
    name: lines[ i + 1 ].split(" - ")[ 1 ], 
 
    comment: lines[ i + 2 ] 
 
    }); 
 

 
console.log(comments);

Dies setzt voraus, ein Kommentar nur eine Zeile ist. Es wird ein bisschen komplizierter, wenn sie es tun.

+0

Danke, ich werde mich damit beschäftigen, denn die Kommentare können sehr lang werden – zazvorniki

Verwandte Themen