2015-09-21 35 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' ]