Javascript 将字符串拆分为多个输出字符串

Javascript 将字符串拆分为多个输出字符串,javascript,Javascript,我有这样的绳子 String input = "ABCD|opt/kelly/box.txt|DXC|20-12-2015 11:00:00" 我通过谷歌搜索尝试了很多选项,比如indexOf()over load等,但没有得到确切的结果 是否可能基于“|”有多个输出字符串 预期产量 String one = input.substring(0,input.indexOf("|")) = ABCD String two = opt/kelly/box.txt String three = DX

我有这样的绳子

String input = "ABCD|opt/kelly/box.txt|DXC|20-12-2015 11:00:00"
我通过谷歌搜索尝试了很多选项,比如indexOf()over load等,但没有得到确切的结果

是否可能基于“|”有多个输出字符串

预期产量

String one = input.substring(0,input.indexOf("|")) = ABCD
String two = opt/kelly/box.txt
String three = DXC
String four = 20-12-2015 11:00:00
剩下的我怎么办

有任何建议,请告诉我如何使用带有子字符串的indexOf得到这个结果


提前谢谢

这很容易。您只需使用:

var input=“ABCD | opt/kelly/box.txt | DXC | 20-12-2015 11:00:00”;
输入=输入。拆分(“|”);

控制台日志(输入)首先,请注意JavaScript不允许您在使用时声明数据类型:

 String input ....
您只能声明变量(即
var输入…

除此之外,方法(它根据您的分隔符分割一个字符串并向您返回一个部分数组)将完成此操作

此外,如果需要将每个数组元素存储在其自己的变量中,则可以使用来完成此操作

//以下是您的场景:
var input=“ABCD | opt/kelly/box.txt | DXC | 20-12-2015 11:00:00”;
var one=input.substring(0,input.indexOf(“|”)//ABCD
//在原始字符串上进行剩余拆分,但不包含已找到的部分
var[two,three,four]=input.replace(一+“|”,”).split(“|”);
控制台日志(一个);
控制台日志(两个);
控制台日志(三个);
控制台日志(四个);
//这里有一个更干净的替代方案,它使用了分解分配:
var input2=“ABCD | opt/kelly/box.txt | DXC | 20-12-2015 11:00:00”;
var[one2,two2,three2,four2]=input.split(“|”);
console.log(one2);
console.log(two2);
控制台日志(2);

console.log(four2)“我有没有可能……”是的。查看文档时,请务必查看文档中其他有用的
String.prototype
方法。您可以通过使用解构赋值将它们保存到现代浏览器中的变量中,如:
const[one,two,three,four]=“ABCD | opt/kelly/box.txt | DXC | 20-12-2015 11:00:00”。拆分(“|”)
如果最后一个变量之后可能有更多数据需要保留,可以使用rest语法
const[one,two,three,four,…rest]=“ABCD | opt/kelly/box.txt | DXC | 20-12-2015 11:00:00”。split(“|”)
任何剩余值将位于变量
rest
持有的数组中。下面是一个使用
.indexOf()
的示例:@Scott…我不能使用这个str.indexOf(“is”,str.indexOf(“is”)+1);哪个为每个输出字符串提供了第n个字符索引之王?@kelly该语法不会在
“is”
的值上拆分。它将搜索是否存在字符串“
”is”
,跳过第一次出现,并返回找到的任何匹配项的索引位置…请检查我的问题..我已使用substring和indexOf将我的字符串添加到一个输出中。如何提取第二个、第三个和第四个..?@kelly查看我的更新答案。尽管如此,我不知道为什么不一次拆分整个字符串,而不是只得到第一部分,然后再处理其余部分。@scott..因为我同时将拆分的字符串存储到不同的字符串变量中,这是一个示例,而不是扩展运算符(或者更准确地说,扩展语法,因为没有这样的运算符)。@skint对ES 6来说是个新手。我知道。谢谢。
:)
更新。