function wordwrap( str, int_width, str_break, cut ) { // Wraps a string to a given number of characters
//
// + original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
// + improved by: Nick Callen
var i, j, s, r = str.split("\n");
if(int_width > 0) for(i in r){
for(s = r[i], r[i] = ""; s.length > int_width;
j = cut ? int_width : (j = s.substr(0, int_width).match(/\S*$/)).input.length - j[0].length || int_width,
r[i] += s.substr(0, j) + ((s = s.substr(j)).length ? str_break : "")
);
r[i] += s;
}
return r.join("\n");
}
Мало того, что cut отключить нельзя
Так и вывод
\t \n
\n
\n
abc\n
\r\t\n
\t\t\n
c \n
b \n
c \n
\n
bab\n
\r \r\n
bac\n
abc
отличается от выхлопа похапешной функции:
Для проверки:
\t \n
\n
abc\n
\r\t\t\tc\n
b \n
c \n
bab\r\n
\r\n
bacabc
Вот рабочая функция:
Лежать она будет тут, если модифицию, то сможете найти более свежую версию по ссылке:
https://github.com/tz4678/Advanced-JavaScript/blob/master/wordwrap.js