Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript/jQuery:使用循环将文本拆分为符号_Javascript_Jquery_Split - Fatal编程技术网

JavaScript/jQuery:使用循环将文本拆分为符号

JavaScript/jQuery:使用循环将文本拆分为符号,javascript,jquery,split,Javascript,Jquery,Split,我的文本内容如下: 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

我的文本内容如下:

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^...";
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('^')+'^');
更多信息

此处演示:

试试这样的方法

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('^')+'^');
更多信息

此处演示: 您可以尝试以下方法:

var text = "asd^dfdf^dsfgdsfg^zdfsd^sdfsdf^dfsdf^dsfsdf^dfsdf^dfsf^sdfsdf",
    temp = text.split('^');
for (i = 0; i < temp.length; i += 5) {
  passfun(temp.slice(i, 5 + i).join('^') + ( i + 5 < temp.length ? '^' : ''));
}
var text=“asd^dfdfdf^dsfgdsfg^zdfsd^sdfsdf^dfsf^dsfsdf^dfsf^dfsf^sdfsdf”,
temp=文本分割(“^”);
对于(i=0;i
您可以尝试以下方法:

var text = "asd^dfdf^dsfgdsfg^zdfsd^sdfsdf^dfsdf^dsfsdf^dfsdf^dfsf^sdfsdf",
    temp = text.split('^');
for (i = 0; i < temp.length; i += 5) {
  passfun(temp.slice(i, 5 + i).join('^') + ( i + 5 < temp.length ? '^' : ''));
}
var text=“asd^dfdfdf^dsfgdsfg^zdfsd^sdfsdf^dfsf^dsfsdf^dfsf^dfsf^sdfsdf”,
temp=文本分割(“^”);
对于(i=0;i
你好,朋友,完美的一点点可能是长度修正,如果你有任何问题,那么就不需要了

var text = "asd^dfdf^dsfgdsfg^zdfsd^sdfsdf^dfsdf^dsfsdf^dfsdf^dfsf^sdfsdf^split^text^upto^5th^and^..";
                //I want to split the text upto multiple of 5th occurrance of ^ and
                //var abc =  text.split("^").length - 1;
                var counter = 0, index = 0;
                var temp = 0, indexArr = [];
                for (var i = 0; i < text.length; i++) {
                    index++;
                    if (text.charAt(i) == '^') {
                        counter++;
                    }
                    if (counter == 5) {
                        counter = 0;
                        myString(index);
                    }
                }
                function myString(tempindex) {
                    var tempString = '';
                    indexArr[temp] = tempindex;
                    if (temp == 0) {
                        tempString = text.substr(0, tempindex);
                        passfun(tempString);
                        temp++;
                    } else {
                        tempString = text.substr(indexArr[temp - 1], indexArr[temp - 1]);
                        passfun(tempString);
                        temp++;
                    }
                    return;
                }
var text=“asd^DFDFDF^dsfgdsfg^zdfsd^sdfsdf^dfsf^dsfsdf^dfsf^sdfsdf^split^text^最多^5^和^;
//我想将文本拆分为第5次出现^和^的倍数
//var abc=text.split(“^”).length-1;
var计数器=0,指数=0;
var-temp=0,indexArr=[];
对于(变量i=0;i
你好,朋友,完美的一点点可能是长度修正,如果你有任何问题,那么就不需要了

var text = "asd^dfdf^dsfgdsfg^zdfsd^sdfsdf^dfsdf^dsfsdf^dfsdf^dfsf^sdfsdf^split^text^upto^5th^and^..";
                //I want to split the text upto multiple of 5th occurrance of ^ and
                //var abc =  text.split("^").length - 1;
                var counter = 0, index = 0;
                var temp = 0, indexArr = [];
                for (var i = 0; i < text.length; i++) {
                    index++;
                    if (text.charAt(i) == '^') {
                        counter++;
                    }
                    if (counter == 5) {
                        counter = 0;
                        myString(index);
                    }
                }
                function myString(tempindex) {
                    var tempString = '';
                    indexArr[temp] = tempindex;
                    if (temp == 0) {
                        tempString = text.substr(0, tempindex);
                        passfun(tempString);
                        temp++;
                    } else {
                        tempString = text.substr(indexArr[temp - 1], indexArr[temp - 1]);
                        passfun(tempString);
                        temp++;
                    }
                    return;
                }
var text=“asd^DFDFDF^dsfgdsfg^zdfsd^sdfsdf^dfsf^dsfsdf^dfsf^sdfsdf^split^text^最多^5^和^;
//我想将文本拆分为第5次出现^和^的倍数
//var abc=text.split(“^”).length-1;
var计数器=0,指数=0;
var-temp=0,indexArr=[];
对于(变量i=0;i
我会在每个“^”上拆分,然后在for循环中将5个字符串添加到一行。@Poul Bak你会做小提琴吗?我会在每个“^”上拆分,然后在for循环中将5个字符串添加到一行。@Poul Bak你会做小提琴吗?检查一下。代码中最多^symbol ^symbol缺失请检查它。代码中最多^symbol ^symbol缺失最后一次删除+'^'最后一次删除+'^'