2017-11-27 4 views
0

私は1つの大きなコメントテキストボックスにコメントがすべて記録されているシステムで作業しています。私はこれらのセクションを分割して、フロントエンドでもっと見栄えを良くする必要があります...今は恐ろしいですから。文脈に基づいたテキストエリアの出力からのセクションの分割

しかし、私はデータを取得し、javascript/jqueryを使用してそれを分割することに問題があるようです。

このようにデータが出てきて、毎回このようにフォーマットされています。

"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." 

私はあなたを3つの異なるセクションに分割する必要があります。日付を入力し、コメントを入力します。

私は、文字列の分割を行って試してみたが、それは、私は任意のヘルプは美しいだろう\nまたは\s

を試してみても、言葉だけで分割されているようです。 https://jsfiddle.net/wz5z2dzo/1/

+0

コメントは複数の行にできますか?あるいは、彼らは常に長いテキスト行にいるのでしょうか?理由は、私はあなたがこれらを分割するために何かが必要であるということです。改行が最も明白な方法でしょう。 – zfrisch

答えて

1

引用符文字列(シングルまたはダブル)は、リテラルの改行をサポートしていません。テンプレートリテラルを使用してみてください。私は特定のトークンで分割することがあなたにとってうまくいかない理由がわかりません...

以下は解決策です。私は行ごとに分割し、空行を削除してから、3回繰り返します。

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

これはコメントは一行だけである前提としています。もしそうであれば、もう少し複雑になります。

+0

コメントが非常に長くなる可能性があるので、ありがとうございます。 – zazvorniki

関連する問題