我需要将一个字符串根据字符数拆分成数组,但不要截断单词。
我一直在使用以下方法:
var charPerLine = 17;
var regex = new RegExp('^(.{'+charPerLine+'}\\S*\\s+', 'g');
var output = str.replace(regex, "$&@").split(/\s+@/);
这段代码的问题在于,有时候我会得到一个长度超过17个字符的字符串,这种情况通常出现在空格离最后一个字符很近的情况下。例如,
var str = "I want you to do something else instead.";
被分割成:
var output = ["I want you to do something", "else instead."]
但是第一个字符串超过了17个字符,我需要将其拆分,例如:
var output = ["I want you to do", "something else", "instead."]
它还必须适用于标点符号和单/双引号。
有什么建议吗?