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));

2 番目のアプローチは動的文字列に適しています

于 2013-05-14T05:07:27.387 に答える
1

次のループは、任意の文字列を 100 文字単位で分割します。配列の最後の要素には、残りの文字数が含まれます (ただし、100 を超えることはありません)。最初の文字列が正確に 500 文字であることが確実な場合は、それぞれが 100 文字を含む 5 つの要素の配列を常に取得します。

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

文字列を正確に 100 文字のチャンクに分割する必要がある場合は、

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

100 文字以下のチャンクに分割する必要がある場合は、

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

質問に「jquery」タグが表示されているので、強力な JQuery Plugin を紹介したいと思います。そのString As JQuery このプラグインの機能の 1 つは、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 に答える