javascript - 根据最大长度将字符串切成块而不破坏单词
问题描述
我有一个字符串,我想将其分解为一个数组。
每个索引都需要有一个最大字母,比如 15 个字符。每个点都需要在单词结尾,最大字符不重叠(IE 在进入下一个单词之前会停在 28 个字符处)。
过去我已经能够使用正则表达式做类似的事情,但我正试图通过一个不喜欢正则表达式的在线平台来完成这项工作。
示例字符串:嗨,这是一个示例字符串,我想将其分解为一个数组!
期望的结果@ 15 char max:
- 嗨,这是一个
- 示例字符串
- 我会
- 喜欢打破
- 下降到一个
- 大批!
解决方案
考虑到没有比最大限制更大的词
function splitString (n,str){
let arr = str?.split(' ');
let result=[]
let subStr=arr[0]
for(let i = 1; i < arr.length; i++){
let word = arr[i]
if(subStr.length + word.length + 1 <= n){
subStr = subStr + ' ' + word
}
else{
result.push(subStr);
subStr = word
}
}
if(subStr.length){result.push(subStr)}
return result
}
console.log(splitString(15,'Hi this is a sample string that I would like to break down into an array!'))
推荐阅读
- javascript - Is there a way to catch event when all nested transition are finished
- mysql - 如何在较新版本的 MySQL 中以编程方式验证密码?
- python - 从脚本中获取 python 可执行文件的版本
- mobile - Flutter 在 pdf 查看器上显示/隐藏选项栏
- jquery - 使用 jQuery 在 tbody 中追加行
- javascript - 尝试填充 2 个选择元素时,jQuery .change 不起作用
- javascript - ReactJS:渲染图像数组
- java - 如何在运行时创建 json 数组并将元素添加到特定数组?
- matlab - 绘制分段曲面图
- character - 如何在 xmgrace 中制作帽子矢量字符