这是我想出的:
http://jsfiddle.net/KyleMuir/czBZz/
function splitString(value) {
var tooLongDeterminer = 12;
var words = value.split(' ');
for (var i = words.length - 1; i >= 0; i--) {
if (words[i].length > tooLongDeterminer) {
var split = words[i];
var tempArray = new Array();
while (split != '') {
var word = splitWord(split, tooLongDeterminer);
tempArray.push(word);
split = split.replace(word, '');
}
words.splice(i, 1, tempArray.join(' '));
}
}
return words.join(' ');
}
function splitWord(word, length) {
return word.substring(0, length);
}
console.log(splitString("This is an exxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxample string."));
console.log(splitString("AnotherExammmmmmmmmmmpleeeeeeeeeeeeeeeee"));
注意:这是递归的(并且仅在 chrome 上测试过),因此可能适合您的目的,也可能不适合您的目的,但上述 console.logs 的输出如下:
AnotherExamm mmmmmmmmmple eeeeeeeeeeee eeee
This is an exxxxxxxxxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxxxample string.
希望这会有所帮助并感谢您的挑战:)