Javascript 使用字符串和长度组合的拆分字符串

Javascript 使用字符串和长度组合的拆分字符串,javascript,Javascript,我有一个像下面这样的字符串,我想用一个数字和“+”来分割它,我试着用下面的代码 输入字符串: 20001+20002+20003+20005+20019+20035+20009+20011+20015+20006+20020+20047+20048+20050+20049+204044+22407+20052+20057+20058+20059+20063+20065+20067+20068+20070+20072+20073+20075+20076+20078+20081+20084+2008

我有一个像下面这样的字符串,我想用一个数字和“+”来分割它,我试着用下面的代码

输入字符串: 20001+20002+20003+20005+20019+20035+20009+20011+20015+20006+20020+20047+20048+20050+20049+204044+22407+20052+20057+20058+20059+20063+20065+20067+20068+20070+20072+20073+20075+20076+20078+20081+20084+20085+20086+20140+21954+206171+206170+206175+20093+206168+206177+206172+20098+206167+20107+20053+20054+20056+20108+20109+20110+20112+20115+20117+20119+20124+20126+20131+20132+20136+20141+20344+20345+20346+20348+20349+20355+20356.A

代码:

期望输出:

str3[0] = 20001+20002+20003+20005+20019+20035+20009+20011+20015+20006+20020+20047+20048+20050+20049+204044+22407
str3[1] = 20052+20057+20058+20059+20063+20065+20067+20068+20070+20072+20073+20075+20076+20078+20081+20084+20085
str3[2] = 20086+20140+21954+206171+206170+206175+20093+206168+206177+206172+20098+206167+20107+20053+20054
str3[3] = 20056+20108+20109+20110+20112+20115+20117+20119+20124+20126+20131+20132+20136+20141+20344+20345
str3[4] = 20346+20348+20349+20355+20356.A
默认情况下,此处的长度为100,并且应根据字符串减少而不是增加(帮助需要完成此操作)

请在这方面给我一些指导

您可以使用右起始值作为
从索引
来搜索下一个
+
,并为零件分割字符串

var字符串='20001+20002+20003+20005+20019+20035+20009+20011+20015+20006+20020+20047+20048+20050+20049+204044+22407+20052+20057+20058+20059+20063+20065+20067+20068+20070+20072+20073+20075+20076+20078+20081+20084+20085+20086+20140+21954+206171+206170+206175+20093+206168+206177+206172+20098+206167+20107+20053+20054+20056+20108+20109+20110+20112+20115+20117+20119+20124+20126+20131+20132+20136+20141+20344+20345+20346+20348+20349+20355+20356.A',
长度=100,
开始=0,
销售时点情报系统,
结果=[];
while((pos=string.indexOf('+',start+length))!=-1){
结果.推送(字符串.切片(开始,位置));
开始=位置+1;
}
result.push(string.slice(start));
控制台日志(结果)
.as console wrapper{max height:100%!important;top:0;}
您可以使用一个右起始值作为
fromIndex
来搜索下一个
+
,并对字符串中的部分进行切片

var字符串='20001+20002+20003+20005+20019+20035+20009+20011+20015+20006+20020+20047+20048+20050+20049+204044+22407+20052+20057+20058+20059+20063+20065+20067+20068+20070+20072+20073+20075+20076+20078+20081+20084+20085+20086+20140+21954+206171+206170+206175+20093+206168+206177+206172+20098+206167+20107+20053+20054+20056+20108+20109+20110+20112+20115+20117+20119+20124+20126+20131+20132+20136+20141+20344+20345+20346+20348+20349+20355+20356.A',
长度=100,
开始=0,
销售时点情报系统,
结果=[];
while((pos=string.indexOf('+',start+length))!=-1){
结果.推送(字符串.切片(开始,位置));
开始=位置+1;
}
result.push(string.slice(start));
控制台日志(结果)

.as控制台包装{max height:100%!important;top:0;}
这就是您在注释中寻找的解释吗

var s="20001+20002+20003+20005+20019+20035+20009+20011+20015+20006+20020+20047+20048+20050+20049+204044+22407+20052+20057+20058+20059+20063+20065+20067+20068+20070+20072+20073+20075+20076+20078+20081+20084+20085+20086+20140+21954+206171+206170+206175+20093+206168+206177+206172+20098+206167+20107+20053+20054+20056+20108+20109+20110+20112+20115+20117+20119+20124+20126+20131+20132+20136+20141+20344+20345+20346+20348+20349+20355+20356.A“
var d=[];
var slug=100;//分离的阈值
var rounds=Math.ceil(s.length/slug);//找出应该形成多少个元素
控制台日志(轮);
对于(var i=0;i slug)?s.substr(slug):s//确保最后一个字符串小于slug值
}

console.log(d,d.length);
这就是您在注释中寻找的解释吗

var s=”20001+20002+20003+20005+20019+20035+20009+20011+20015+20006+20020+20047+20048+20050+20049+204044+22407+20052+20057+20058+20059+20063+20065+20067+20068+20070+20072+20073+20075+20076+20078+20081+20084+20085+20086+20140+21954+206171+206170+206175+20093+206168+206177+206172+20098+206167+20107+20053+20054+20056+20108+20109+20110+20112+20115+20117+20119+20124+20126+20131+20132+20136+20141+20344+20345+20346+20348+20349+20355+20356.A“
var d=[];
var slug=100;//分离的阈值
var rounds=Math.ceil(s.length/slug);//找出应该形成多少个元素
控制台日志(轮);
对于(var i=0;i slug)?s.substr(slug):s//确保最后一个字符串小于slug值
}

console.log(d,d.length);
与Nina Scholz的答案几乎相同,但有点不同。从0开始,然后在接下来的100个字符后查找“+”,然后将其复制到结果数组中。从“+”后的字符再次开始,直到字符串用尽

var s='20001+20002+20003+20005+20019+20035+20009+20011+20015+20006+20020+20047+20048+20050+20049+204044+22407+20052+20057+20058+20059+20063+20065+20067+20068+20070+20072+20073+20075+20076+20078+20081+20084+20085+20086+20140+21954+206171+206170+206175+20093+206177+20067+20150+20150+20150+20150+20150+2057115+20117+20119+20124+20126+20131+20132+20136+20141+20344+20345+20346+20348+20349+20355+20356.A';
var start=0,
最小值=100,
pos=0,
结果=[];
而(位置!=-1){
pos=s.indexOf(“+”,开始+min);
结果.推送(s.子串(开始,位置==-1?s.长度:位置));
开始=位置+1;
}

console.log(result);
与Nina Scholz的答案几乎相同,但稍有不同。从0开始,然后在接下来的100个字符后查找“+”,然后将其复制到结果数组中。再次从“+”后的字符开始,直到字符串用尽

var s='20001+20002+20003+20005+20019+20035+20009+20011+20015+20006+20020+20047+20048+20050+20049+204044+22407+20052+20057+20058+20059+20063+20065+20067+20068+20070+20072+20073+20075+20076+20078+20081+20084+20085+20086+20140+21954+206171+206170+206175+20093+206177+20067+20150+20150+20150+20150+20150+2057115+20117+20119+20124+20126+20131+20132+20136+20141+20344+20345+20346+20348+20349+20355+20356.A';
var start=0,
最小值=100,
pos=0,
结果=[];
而(位置!=-1)
str3[0] = 20001+20002+20003+20005+20019+20035+20009+20011+20015+20006+20020+20047+20048+20050+20049+204044+22407
str3[1] = 20052+20057+20058+20059+20063+20065+20067+20068+20070+20072+20073+20075+20076+20078+20081+20084+20085
str3[2] = 20086+20140+21954+206171+206170+206175+20093+206168+206177+206172+20098+206167+20107+20053+20054
str3[3] = 20056+20108+20109+20110+20112+20115+20117+20119+20124+20126+20131+20132+20136+20141+20344+20345
str3[4] = 20346+20348+20349+20355+20356.A