2013-04-04 64 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();}); 

會給你所描述的。注:有可能是更好的正則表達式。