我的文字内容如下:

var text = "asd^dfdf^dsfgdsfg^zdfsd^sdfsdf^dfsdf^dsfsdf^dfsdf^dfsf^sdfsdf^..."


我想将文本拆分为^的第5次出现的倍数,并传递给带有^符号的函数。

如果元素中有31个^,则:第5个,第10个,第15个,第20个,第25个,第30个,然后其余的应传递给函数(即使用^的第31个)。

我更喜欢for循环,例如:

var spl = text.split(); //up-to 5th multiple

for(i=0; i<spl.length; i++){
 passfun(upto 5th^ with cap symbol)
}


例:

var text = "asd^dfdf^dsfgdsfg^zdfsd^sdfsdf^dfsdf^dsfsdf^dfsdf^dfsf^sdfsdf^sssad^gsds..."

passfun("asd^dfdf^dsfgdsfg^zdfsd^sdfsdf^"); //1st time
passfun("dfsdf^dsfsdf^dfsdf^dfsf^sdfsdf^");//2nd time
passfun("sssad^gsds");//last

最佳答案

试试这个

var text = "asd^dfdf^dsfgdsfg^zdfsd^sdfsdf^dfsdf^dsfsdf^dfsdf^dfsf^sdfsdf^...";
var spl = text.split('^');
Array.prototype.chunk = function ( n ) {
    if ( !this.length ) {
        return [];
    }
    return [ this.slice( 0, n ) ].concat( this.slice(n).chunk(n) );
};
console.log(spl.chunk(5)[0].join('^')+'^');


更多信息
Split array into chunks

演示在这里:
https://jsfiddle.net/bo4eacv5/1/

09-25 17:56