2017-04-03 70 views
0

我試圖使用以下代碼行來檢查字符串是否大於46個字符。如果它更長,它會每46個字符打出一個新的行,但是,我沒有這樣做。使用JavaScript每46個字符打破一行

誰能告訴我什麼是錯的?

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)可能應該讀如果(ⅰ%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方法來實現。

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