我有不同长度的字符串。这些字符串很大,介于4000到20000个字符之间。 我希望将字符串全部切成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.']
现在,我想做一个循环来实现这一点,因为我有较小的字符串和较大的字符串,所以它可能会减少此字符串的次数。怎么做?谢谢
答案 0 :(得分:0)
您可以使用.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;
}