2016-05-21 14 views
0

javascript最大320文字の部分文字列で不明な長さの文字列を分割する必要がありますが、最後に出現した後は常に\n文字列 "ユーザーフレンドリー" - すべての文字列が... Facebookメッセージになります n文字で最大n文字の文字列を分割します。

例から:

EccoのIL佗carrello:
•二 - のFrittataディspinaci dell'artusi
•二 - のFrittata・ディ・spinaciデルアート•フリッタタ・ディ・スピナッチ・デル・アーツス
• 二 - のFrittataディspinaci dell'artusi
•二 - のFrittataディspinaci dell'artusi
• 二 - のFrittataディspinaci dell'artusi
•二 - のFrittataディspinaci dell'artusi
• 二 - のFrittataディspinaci dell'artusi
•二 - のFrittataディspinaci dell'artusi
• 二 - のFrittataディspinaci dell'artusi
•二 - のFrittataディspinaci dell'artusi
•二 - のFrittataディspinaci dell'artusi
•二 - のFrittataディspinaci dell'artusi
•二 - のFrittataディspinaci dell'artusi
•二 - のFrittataディspinaci dell'artusi

へ:

EccoのIL佗carrello:
•二 - のFrittataディspinaci dell'artusi
•二 - のFrittataディ spinaci dell'artusi
•二 - のFrittataディspinaci dell'artusi
•二 - のFrittataディ spinaciデル「artusi
•二 - のFrittataディspinaci dell'artusi
•二 - のFrittataディ spinaci dell'artusi
•二 - のFrittataディspinaci dell'artusi
•二 - のFrittataディ spinaci dell'artusi

•二 - のFrittataディspinaci dell'artusi
•二 - のFrittataディspinaci dell'artusi
• 二 - のFrittataディspinaci dell'artusi
•二 - のFrittataディspinaci dell'artusi
•二 - のFrittataスピナチア・デル・アーツス(spinaci dell'artusi)
•フリッタタ・ディ・スピナッチ・デル・アーツスイ

+1

あなたが入力し、希望の出力の例を挙げてもらえますか? – selten98

+0

そして、 '\ n'の部分文字列が320文字後に出現するとどうなるでしょうか? –

+0

私は利用可能な最も近いスペースで分割すると思う –

答えて

2

My apプローチはこれのようになります。

  • すべての行を配列に変換します。 (lines
  • 別の配列(reduced)のインデックス0の行を1つずつ追加して、次の行が追加されるまで、合計長は320文字を超えます。
  • インデックス0の文字列が受け入れられる制限に達すると、それ以上の行はインデックス1に移動し、同じ方法を続行します。

var text = "Ecco il tuo carrello:\n• Frittata di spinaci dell'artusi\n• Frittata di spinaci dell'artusi\n• Frittata di spinaci dell'artusi\n• Frittata di spinaci dell'artusi\n• Frittata di spinaci dell'artusi\n• Frittata di spinaci dell'artusi\n• Frittata di spinaci dell'artusi\n• Frittata di spinaci dell'artusi\n• Frittata di spinaci dell'artusi\n• Frittata di spinaci dell'artusi\n• Frittata di spinaci dell'artusi\n• Frittata di spinaci dell'artusi\n• Frittata di spinaci dell'artusi\n• Frittata di spinaci dell'artusi\n• Frittata di spinaci dell'artusi", 
 
    lines = text.split("\n"), 
 
     i = 0, 
 
reduced = lines.reduce((p,c) => { p[i].length + c.length <= 320 ? p[i]+= c + "\n" 
 
                   : p[++i] = c + "\n"; 
 
            return p;},[""]); 
 
console.log(reduced); 
 
console.log(reduced[0].length); 
 
console.log(reduced[1].length);

関連する問題