2013-04-04 62 views
0

我的工作,我收到一个字符串variabele项目(通过调用C#的功能,因为我的C#代码使得HttpWebRequest和接收数据回传,以及函数返回正确的数据)。拆分文本(字符串)投票

字符串variabele是这样的:

Bus number:15 
Bus destination: Walker Titan Road 
Time: 14:39:00 

Bus number:11 
Bus destination: Walker Titan Road 
Time: 14:42:00 

Bus number:X78 
Bus destination: Newcastle (city centre) Eldon Square Bus Station 
Time: 14:49:00 

现在我想在Javascript

到单独的不同阵列中这些字符串我想有以下

BusNumbers[]{15,11,X78} 
busDestinations][{Walker Titan Road,Walker Titan Road,Newcastle (city centre) Eldon Square Bus Station} 
busTimes[]{14:39:00,14:49:00,14:49:00} 

我想要这个,因为我喜欢用Javascript制作一张桌子,我可以把每个信息放在右栏

我在C#编写一个简短的程序,以显示我想要在JavaScript中执行:

string[] A1 = new string[] { "15", "X86", "54" }; 
     string[] A2 = new string[] { "Newcastle", "City Centre", "Monument" }; 
     string[] A3 = new string[] { "15:05", "16:06", "16:35" }; 


      for (int j = 0; j < A1.Length; j++) 
      { 
       listBox1.Items.Add("Busnumber: " + A1[j] + "--"); 
       listBox1.Items.Add(" Destination: " + A2[j] + "--"); 
       listBox1.Items.Add(" Time : " + A3[j] + "\n"); 

      } 

(它有一个列表框,而是因为它没有关系的例子做...)

但是,在我可以为lus创建一个表并添加表中的所有信息之前,我想知道如何分隔数组中的每个busnumber,数组中的每个busDestination以及数组中的每个busTime。

这存在于Javascript中吗?

或者我需要搜索另一种替代方案吗?

如果没有解决方案,我想在C#中,使3个功能,其中每个功能返回正确的信息的功能显示了所有busnumbers,一个所有的目的地和一个所有的时间。我可以在Javascript中调用所有这些函数,并将文本分割为“,”并将它们全部放入正确的数组中。

有人能帮助我吗? 我希望我的问题已经够清楚了......

谢谢!

+0

你可以修改这个C#程序吗?也许最好将序列化为JSON,而不是将字符串解析为js中的JSON ... – mnowotka 2013-04-04 15:23:42

+0

@Josh你读过了吗?这是C#。他们要求翻译成Javascript – Ian 2013-04-04 15:25:34

+0

@Ian,他建议用另一种方法解决他们可能更直截了当的问题。在评论中,不是答案。这没什么错。它是评论的主要目的之一,以帮助解决真正的问题。 (在这种情况下,这似乎是我如何从我的C#代码中的字符串获取这些数组中的字符串,而不是如何在JS中执行字符串处理) – 2013-04-04 15:33:03

回答

0

你必须选择:

  1. 写自己的解析器使用标准js的字符串处理函数(SUBSTR,正则表达式,等等)这个字符串。我不会在这里提供代码,这是你自己需要做的事情。但这不是优雅的解决方案,这是直接解决您的问题。

  2. 如果你可以修改C#代码生成此字符串,那么你可能完全改变它产生的,而不是字符串JSON。这个过程称为序列化,你应该熟悉它。这个解决方案比第一个更优雅。

0

假设X你输入相匹配(与输入是符合你提供了什么):

var x ='Bus number:15 \nBus destination: Walker Titan Road \nTime: 14:39:00 \nBus number:11 \nBus destination: Walker Titan Road \nTime: 14:42:00 \nBus number:X78 \nBus destination: Newcastle (city centre) Eldon Square Bus Station \nTime: 14:49:00\n'; 


var BusNo = x.match(/[.]*Bus number\:[\s]*([\S])+(?=\s)/g).map(function(m){return m.replace('Bus number:','');}); 
var BusDest = x.match(/[.]*Bus destination\:[\s]*[\w\s\(\)]*(?=\n)/g).map(function(m){return m.replace(/Bus destination\:[\s]*/,'').trim();}); 
var BusTime = x.match(/[.]*Time\:[\s]*[:|\d]*(?=\s)/g).map(function(m){return m.replace(/Time\:[\s]*/,'').trim();}); 

会给你所描述的。注:有可能是更好的正则表达式。