2013-02-13 80 views
3

我有一個生成的列表是這樣如何使陣列字符串列表

196-1526,85-651,197-1519

我需要這樣的陣列。每個節點都有兩部分。我只需要一個數組中每個節點的第一部分。

196,85,197

我已經有這樣的代碼,其generage 196

str.substr(0,str.indexOf('-')); 
+0

是生成的列表中的JavaScript數組試試這個代碼?或一個字符串? – 2013-02-13 13:29:52

+0

你幾乎在那裏......循環列表中的元素並根據已有的方程分配數組元素。 – Floris 2013-02-13 13:30:27

+0

這是一個字符串。不幸的是,我不知道如何循環。 – Fury 2013-02-13 13:30:51

回答

3

您可以使用下列內容:

'196-1526, 85-651, 197-1519'.replace(/-\d+(,|$)/g, '').split(/\s/) 
+0

這太棒了。像魅力一樣工作。謝謝隊友:) – Fury 2013-02-13 13:44:08

+0

+1非常漂亮,華而不實。 – Nope 2013-02-13 14:33:13

+0

很高興幫助:) – jabclab 2013-02-13 14:47:37

2

如果它是一個數組

var myarray = ["196-1526", "85-651", "197-1519"]; 
var newarray = []; 
var i = 0; 
for(i = 0; i < myarray.length; i++){ 
    var mnode = myarray[i].split("-"); 
    newarray.push(mnode[0].trim()); 
} 

,如果它是一個字符串

var myarray = "196-1526, 85-651, 197-1519".split(","); 
var newarray = []; 
var i = 0; 
for(i = 0; i < myarray.length; i++){ 
    var mnode = myarray[i].split("-"); 
    newarray.push(mnode[0].trim()); 
} 

演示http://jsfiddle.net/Dbbc8/

2

如果輸入的是一個字符串,您可以使用split()push(),與此類似:

var x = "196-1526, 85-651, 197-1519" 
var y = x.split(','); 

var myArray = []; 

for(i = 0; i < y.length; i++){ 
    myArray.push(y[i].split('-')[0].trim()); 
} 

DEMO - 使用split()push()


0

採用分體式

var text='196-1526, 85-651, 197-1519'; 
    var splittedtext=text.split(','); 
    var numbers=new Array(); 
    for(var i=0;i<splittedtext.length;i++) 
    { 
     var furthsplit=splittedtext[i].split('-'); 
     numbers[i]=furthsplit[0]; 
    } 
    alert(numbers); 
0
var pairs = str.split(", "); 
var values = []; 

for (var i=0; i< pairs.length; i++) { 
    values.push(pairs[i].substr(0, pairs[i].indexOf('-'))); 
}