I want to cut a string every 100 characters without cutting up words.
var TmpArray=[];
var str = \'this string will be cut up after every 100 characters but
Interesting question. I will propose one more implementation of how you can use just array methods, combination of split
+ reduce
:
var str = 'This example of the string that we want to split by spaces only making sure that individual chunk is less or equal to specified number.';
// Split by spaces
str.split(/\s+/)
// Then join words so that each string section is less then 40
.reduce(function(prev, curr) {
if (prev.length && (prev[prev.length - 1] + ' ' + curr).length <= 40) {
prev[prev.length - 1] += ' ' + curr;
}
else {
prev.push(curr);
}
return prev;
}, [])
// Print for testting
.forEach(function(str) {
console.log(str + ' ' + str.length);
});
For this example I set maximum length of 40 characters.
Output:
This example of the string that we want 39
to split by spaces only making sure that 40
individual chunk is less or equal to 36
specified number. 17