2017-04-03 5 views
0

文字列が46文字を超えるかどうかを確認するには、次のコード行を使用しようとしています。それより長い場合は、46文字ごとに改行されますが、私はそうしていません。Javascript

何が問題なのか教えていただけますか?

function ContentFormat(content) 
 
{ 
 
    var start = ""; 
 
    var end = ""; 
 
    var space = "<br/>&nbsp; &nbsp;"; 
 
    var newcontent = ""; 
 
    var toadd = ""; 
 
    if (content.length > 46) 
 
    { 
 
     for (var i = 0, len = content.length; i < len; i++) { 
 
      if(i/46 == 0) 
 
      { 
 
       start = content.slice(0, i); 
 
       end = content.slice(i); 
 
       toadd = start.concat(space, end); 
 
      } 
 
      newcontent = toadd; 
 
      toadd = ""; 
 
     } 
 
    } 
 
    return newcontent; 
 
}

+1

(I/46 == 0)の場合は、おそらくお読みください –

答えて

0

条件場合は、ループ&のために間違っています。

function ContentFormat(content) 
{ 
    var start = ""; 
    var end = ""; 
    var space = "<br/>&nbsp; &nbsp;"; 
    var newcontent = ""; 
    var toadd = ""; 
    var len = content.length 
    if (len > 46) 
    { 
     for (var i = 0; i < len; i++) { 
      if(i%46 == 0) 
      { 
       start = content.slice(0, i); 
       end = content.slice(i); 
       toadd = start.concat(space, end); 
      } 
      newcontent = toadd; 
     } 
    } 
} 
0

があなたのロジックが完全に間違っている、46個の文字の後にブレークを追加するには、代わりにあなたのコードの下に使用します!

function ContentFormat(content) 
{ 
    var leftPortion = ""; 
    var space = "<br/>&nbsp; &nbsp;"; 
    var newcontent = ""; 
    while (content.length > 46) 
    { 
     leftPortion = content.slice(0, 45); 
     content = content.slice(45); 
     newcontent = newcontent + leftPortion + space; 
    } 
    newcontent = newcontent + content; 
    window.alert(newcontent); 
} 
0

これは、正規表現とString.replaceメソッドでも使用できます。 (I%46 == 0)場合

var str = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'; 
 

 
function breakEvery(str, interval, breaker) { 
 
    if (str === void 0) { str = ""; } 
 
    if (interval === void 0) { interval = 0; } 
 
    if (breaker === void 0) { breaker = "\n"; } 
 
    if (str.length < interval) { 
 
     return str; 
 
    } 
 
    var re = new RegExp('.{' + interval + '}', "ig"); 
 
    return str.replace(re, function (part) { return part + breaker; }); 
 
} 
 

 
console.log(breakEvery(str, 46, "\n<br/>&nbsp; &nbsp;"));