如何将字符串拆分为不同的部分

时间:2013-05-14 05:05:30

标签: javascript jquery

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

示例:

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

6 个答案:

答案 0 :(得分: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));

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

答案 1 :(得分: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);

答案 2 :(得分: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期望第一个和最后一个索引。

答案 3 :(得分: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/

答案 4 :(得分: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示例

答案 5 :(得分:0)

如果您需要将字符串拆分为恰好100个字符的块

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

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

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