2013-02-13 57 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('-'))); 
}