2017-05-12 1 views
0

すべてのカンマを40文字後に改行して改行したいとします。最初のカンマで改行40文字で

したがって、スクリプトが最初のカンマで改行より40文字を超えた場合。

から:

43 characters, 46 characters, 41 characters, 

へ:

43 characters, 
46 characters, 
41 characters, 

たとえば、文字列:

FFS Level D Secondary Control, A320 and A330 for Trim Wheel, B737 for Throttles, Nose Wheel Tiller, Speed Brake Handle, FTD, Secondary Control. 

へ: FFS Level D Secondary Control, A320 and A330 for Trim Wheel, B737 for Throttles, Nose Wheel Tiller, Speed Brake Handle, FTD, Secondary Control.

私の現在のC ODE: application_json.match(/.{1,40}/g).join("<br/>");

+0

なぜ 'Control 'の後のブレーク?それは40文字未満です – Toto

+0

@Toto申し訳ありません私の悪い、私は質問を編集する! –

答えて

1
var oldStr = 'FFS Level D Secondary Control, A320 and A330 for Trim Wheel, B737 for Throttles, Nose Wheel Tiller, Speed Brake Handle, FTD, Secondary Control.'; 
var charCount = 0; 
var newStr = ''; 
for (var i = 0, len = oldStr.length; i < len; i++) 
{ 
    newStr += oldStr.charAt(i); 
    charCount++; 
    if (oldStr.charAt(i) == ',' && charCount >= 40) { 
     newStr += '<br />'; 
     charCount = 0; 
    } 
} 

は(もカウンタをインクリメント)すべての文字を読み、カウンタが40を超えると、現在の文字がカンマであるとき、改行を追加して、次のパスのために再びカウンタをゼロにします。

EDIT:あなたは後少なくとも40文字ではなく、誤ってこれらの40文字の一部で、charCount > 40

+0

ありがとう!それは完全に動作します! –

+1

カンマが***の後に***が少なくとも40文字以上必要であり、誤ってこれらの40文字の一部にならないようにするには、 'charCount> = 40'を' charCount> 40'に置き換えてください。 – Wizard

1

charCount >= 40を置き換えるためにカンマが必要な場合はここで、私が以前書いたIndexOfメソッドを使用して代替が、のdidn」のです投稿する機会を得る。それは、現在の位置(S)40(40文字の最小の後ので、次のカンマ)で始まるindexOfを使用しています

var source = "FFS Level D Secondary Control, A320 and A330 for Trim Wheel, B737 for Throttles, Nose Wheel Tiller, Speed Brake Handle, FTD, Secondary Control." 
 

 
var result = ""; 
 
var s = 0; 
 
var e = source.indexOf(",", s + 40) + 1; 
 
// >=1 rather than !=-1 as indexOf uses +1 to include the comma 
 
while (e >= 1 && s < source.length) { 
 
    result = result + source.substring(s, e) + "\n"; 
 
    s = e; 
 
    e = source.indexOf(",", s + 40) + 1; 
 
} 
 
result = result + source.substring(s); 
 
console.log(result)

私はまた、REGの元のバージョンで行くを持っていたし、

var source = "FFS Level D Secondary Control, A320 and A330 for Trim Wheel, B737 for Throttles, Nose Wheel Tiller, Speed Brake Handle, FTD, Secondary Control." 
 

 
var r2 = source.match(/.{40}.*?,|.*$/g).join("\n"); 
 
console.log(r2)

0:これを得ました
+0

答えをありがとう!特に正規表現のもの! –