javascript - 缩短一个大字符串而不削减单词并在Javascript中保存到数组中
问题描述
我有不同长度的字符串。这些是非常大的字符串,介于 4000 到 20 000 个字符之间。我希望在不剪切一个完整的单词中间的情况下剪切一个所有 4000 个字符的字符串。然后将剪切的字符串存储在一个数组中
我可以剪断我的绳子并恢复每个剪断的末端。但是,我需要一个循环,因为有些字符串比其他字符串大
我的代码目前:
let string = 'One string with 9771 character, including "."';
let array = [];
let string2 = '';
var cutat = string.lastIndexOf('.',4000);
if(cutat!=-1){
string2=string.substring(0,cutat)+".";
}
string = string.split(string2)
string = string[1]
array[0] = string2;
var cutat = string.lastIndexOf('.',4000);
if(cutat!=-1){
string2=string.substring(0,cutat)+".";
}
string = string.split(string2)
string = string[1]
array[1] = string2;
var cutat = string.lastIndexOf('.',4000);
if(cutat!=-1){
string2=string.substring(0,cutat)+".";
}
array[2] = string2;
console.log(array)
目前,我得到我的数组,我的字符串每 4000 个字符划分一次,中间没有删减一个单词。
Array = ['the first 4000 characters.','the second.','the last.']
现在,我想创建一个循环来实现这一点,因为我有更小的字符串和更大的字符串,所以它可能会或多或少地切割这个字符串。怎么做?谢谢
解决方案
您可以使用.substr
方法和while循环来做到这一点:
const s_limit = 4000;
function cutter(str) {
var chunks = [];
while(str.lastIndexOf('.', s_limit) > 0) {
var ind = str.lastIndexOf('.', s_limit)+1;
chunks.push(str.substr(0, ind));
str = str.substr(ind);
}
return chunks;
}
推荐阅读
- php - 无法在 php 中更新会话
- python - 如何使用 schedule 包安排 python 作业每小时准确运行
- android - 如何仅将带有过渡的 Material 主题用于 android 应用程序中的某些活动?
- git - 如何使用个人访问令牌进行 git commit?
- python - 使用 Python 请求登录 Instagram
- java - Spring Boot Controller 未处理 Thymeleaf 登录表单
- spring - 如何在 Heroku 上部署 Spring Web 项目?
- artificial-intelligence - Planning.domain 求解器中的计划在哪里?
- python - matplotlib boxplot 绘制 <> 大于和小于某个值
- paypal - 贝宝网络钩子