這就是我想出了:
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測試),可能會或可能不會從上面的控制檯滿足您的要求,但輸出.logs如下:
AnotherExamm mmmmmmmmmple eeeeeeeeeeee eeee
This is an exxxxxxxxxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxxxample string.
希望這有助於和感謝的挑戰:)
你需要澄清你想要的。每條線的長度完全相同? '太長'在沒有語境的情況下是毫無意義的 – Wyatt
要清楚,你只想將*字*分成長度超過一定的長度,而對總長或線的長度毫不在意? – user113215
@ user113215是的,這就是我需要的。 – David