我需要根据一些字符将一个字符串拆分成一个数组,而不是删掉一个字。
我一直在用这个:
Children
此代码的问题在于,有时我会得到一个长度超过17个字符的字符串,如果空格接近最新字符的话。
例如,
CollectionChanged
分为:
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.";
它还必须使用标点符号和单/双引号
有什么建议吗?
答案 0 :(得分:4)
答案 1 :(得分:1)
您可以在第一个正则表达式中添加一个单词边界断言\b
,这样如果它当前位于新单词的开头,它就不会使\S*
前进:
var str = "I want you to do something else instead";
var charPerLine = 15;
var regex = new RegExp('.{'+charPerLine+'}(?:\\b|\\S*\\s+)', 'g');
var output = str.replace(regex, "$&@").split(/\s*@\s*/);
console.log(output);