繁体   English   中英

使用JavaScript用分号和逗号循环文本

[英]Loop through a text with semicolon and comma using javascript

我有以下代码:

var s=Stop;5,Service;13,Error;21,LINK DOWN;53,Data Incomplete;2,Replication Off;0,LINK DOWN;53

我需要循环获取:

stop 5
Service 13
Error 21
.
.

我需要使用一个数组,因为我必须获取stop服务的值才能在html上显示它。

我已经试过了:

var rslt = [];
for (var i = 0; i < 5; i++) {
  rslt[i] = s.substr(i, s.indexOf(','));
}

但这并没有给我我想要的东西。

只需使用split与方法,作为参数。 您不需要任何循环。

 const arr = 'Stop;5,Service;13,Error;21,LINK DOWN;53,Data Incomplete;2,Replication Off;0,LINK DOWN;53'.split(','); console.log(arr); 

而且,如果您也想摆脱那些分号,则可以这样做。

 const arr = 'Stop;5,Service;13,Error;21,LINK DOWN;53,Data Incomplete;2,Replication Off;0,LINK DOWN;53' .split(',') .map(item => item.replace(';', ' ')); console.log(arr); 

您可以按逗号分割,并用分号映射分割后的值。

 var s = 'Stop;5,Service;13,Error;21,LINK DOWN;53,Data Incomplete;2,Replication Off;0,LINK DOWN;53', values = s.split(',').map(t => t.split(';')); console.log(values); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

尝试使用replace()split()

 var s='Stop;5,Service;13,Error;21,LINK DOWN;53,Data Incomplete;2,Replication Off;0,LINK DOWN;53' s = s.replace(/;/g,' ').split(','); console.log(s); 

或:如果要使用嵌套数组:

 var s='Stop;5,Service;13,Error;21,LINK DOWN;53,Data Incomplete;2,Replication Off;0,LINK DOWN;53' s = s.replace(/;/g,' ').split(',').map(i=> i.split(' ')); console.log(s); 

只需更换; 一个空格。 然后将您的字符串分成一个数组,如下所示:

var temp = s.replace(";", " ").split(",");

注意:您的变量s声明不正确。 也许我误解了您“文本”的格式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM