3

我有一个像这样的生成列表

196-1526、85-651、197-1519

我需要这样的数组。每个节点有两个部分。我只需要一个数组中每个节点的第一部分。

196、85、197

我已经有了这个生成 196 的代码

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

5 回答 5

3

您可以使用以下内容:

'196-1526, 85-651, 197-1519'.replace(/-\d+(,|$)/g, '').split(/\s/)
于 2013-02-13T13:33:00.277 回答
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/

于 2013-02-13T13:31:54.710 回答
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());
}

演示- 使用split()push()


于 2013-02-13T13:32:29.823 回答
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);
于 2013-02-13T13:34:56.660 回答
0
var pairs = str.split(", ");
var values = [];

for (var i=0; i< pairs.length; i++) {
    values.push(pairs[i].substr(0, pairs[i].indexOf('-')));
}
于 2013-02-13T13:35:51.790 回答