1

我想将字符串分成不同的部分。我将有一些动态生成的字符串,其中包含 500 个字符。我想分成5个部分。我的意思是我想将100字符放入...中的array[0]下一个100字符。array[1]

例子:

 var string = "kjfaorj.......................................................";
 array[0] = "kjfaorj..... up to 100 characters";
 array[1] = " next 100 characters ";
 ..........................
 ..........................
4

6 回答 6

5
 if(str.length % 100 == 0) //If the string contains exactly 500 or 400...etc
     count = str.length / 100;
  else
    count = str.length / 100 +1; //If the string contains exactly 505 or 417...etc

for(var i=0;i<count;i++)
  array[i] = s.substring(i*100,(i*100)+(100));

第二种方法适用于动态字符串

于 2013-05-14T05:07:27.387 回答
1

尝试这个:

var string= "kjfaorj.......................................................";
var array=[];
array[0] = string.substring(0,99);
array[1] = string.substring(100,199);
array[2] = string.substring(200,299);
array[3] = string.substring(300,399);
array[4] = string.substring(400,499);
于 2013-05-14T05:11:10.967 回答
1

以下循环将任何字符串拆分为 100 个字符。数组的最后一个元素将包含剩余的字符数(但永远不会超过 100)。如果您确定您的初始字符串正好包含 500 个字符,那么您将始终得到一个由五个元素组成的数组,每个元素包含 100 个字符。

var str = "kjfaorj....................................................... etc.";
for(var arr = [], i = 0; i < str.length - 1; i += 100) {
    arr.push(str.substr(i, 100));
}

substrsubstring之间的区别在于期望substr子字符串的长度,而substring期望第一个和最后一个索引。

于 2013-05-14T08:06:22.327 回答
0

当我在您的问题中看到“jquery”标签时,我想介绍一下我强大的 JQuery 插件。它的String As JQuery 这个插件的功能之一是将 String 转换为 Array:String 的每个 n 连续字符是这个 Array 中的一个项目。

句法

var myarray=$(myString).toStrArray(eachN); 

对于您的情况,您可以按以下方式使用它;

 var string = "kjfaorj.......................................................";

var myarray=$(string).toStrArray(100); 

演示 http://jsfiddle.net/abdennour/E8LhJ/

于 2013-05-14T07:54:16.080 回答
0

这是任何字符串长度的更通用的函数:

function splitupString(str,chunklen){
 str = str.split('');
 var chunks = Array((str.length/chunklen)^0).join(',').split(',');
 return chunks
         .map(function(){return this.splice(0,chunklen).join('');},str)
         .concat(str.join(''));
}
// usage example
var strsplitted = splitupString('123456789012345678901234567890123',5);
//=> [12345,67890,12345,67890,12345,67890,123]

jsFiddle示例

于 2013-05-14T08:49:58.110 回答
0

如果您需要将字符串拆分为正好 100 个字符的块,那么

var foo = bar.match(/.{100}/g);

如果您需要拆分为不超过 100 个字符的块,则

var foo = bar.match(/.{1,100}/g);
于 2013-05-14T11:27:04.623 回答