2015-09-21 72 views
2

我是新來的JavaScript,並試圖格式化一些數據。我有以下格式的數據:分裂數據 - String.split參數

"Matt Forte : 17.8C.J. Anderson : 16.5Jamaal Charles : 16.4" 

什麼是將其拆分的最佳方法如下? string.split(),我會在括號中放什麼?

Matt Forte : 17.8 
C.J. Anderson : 16.5 
Jamaal Charles : 16.4 

我迄今爲止代碼:

var playersAndPoints = $('.items').text(); 
      var playersAndPoints = JSON.stringify(playersAndPoints); 
      var re = /Points\s\(PPR\)/gi; 
      var formattedPlayers = playersAndPoints.replace(re, " "); 
      for(var i = 0; i<formattedPlayers.length; i++){ 
       if ((typeof(formattedPlayers[i]) === 'number') && (typeof(formattedPlayers[++i]) === 'letter') 
       { 
        formattedPlayers.split(formattedPlayers[i]) 
       } 
      } 
+2

什麼是你的代碼看起來像那麼遠? – axelduch

+0

更新以顯示 – devdropper87

+1

您可能需要一個正則表達式,因爲例如'17.8'和'C.J'之間沒有明確的劃分。 –

回答

2

這可以被處理簡單一點,我認爲

首先,我可以看到一個帶有編號的所有玩家數據結束(+可選的小數點)

一個RegExp將匹配這可能是

var re = /[^0-9]+[0-9]+(?:\.?[0-9]+)?/g 

現在,讓我們使用它:

re.match("Matt Forte : 17C.J. Anderson : 16.5Jamaal Charles : 16.4"); 
// ["Matt Forte : 17", "C.J. Anderson : 16.5", "Jamaal Charles : 16.4"] 
0

下面是得到了那份工作正則表達式來完成:

var data = 'Matt Forte : 17C.J. Anderson : 16.5Jamaal Charles : 16.4' 
var sorted = data.match(/(\D)+:\s(\d|\.)+/g) 
console.log(sorted) 
// [ 'Matt Forte : 17.8', 
// 'C.J. Anderson : 16.5', 
// 'Jamaal Charles : 16.4' ]