带有换行符到数组的字符串输入

时间:2016-09-15 22:53:37

标签: javascript regex

我有一个像这样的字符串输入:

2 4 6
1 2 3
2
1
0

如何将每一行保存为数组?我用

input = input.split("\n"); 

给我:

 [['2', ' ', '4', ' ', '6'], ['1', ' ', '2', ' ', '3'], ['2'], ['1'], ['0']]

然后我用正则表达式循环每个数组:

var arr = ['2', ' ', '4', ' ', '6'];
var reg = /[^\s]/g;
var arr2 = [];
for (var i = 0; i < arr.length; i++) {
    if (arr[i].match(reg)) {
        console.log(arr[i]);
        arr2.push(arr[i]);
    }
  }
arr = arr2; // arr = [ '2', '4', '6' ];

等等。有没有更快的方法呢?我尝试过复杂的正则表达式,但我失败了。输入总是4行。

2 个答案:

答案 0 :(得分:0)

如果用空格替换换行符然后拆分成空格,它是否有效?

var arr = input.replace(/\n/g,' ').split(' '); 

答案 1 :(得分:0)

您可以为\ n分割一次,为空格分割一次:

var input = "2 4 6\n1 2 3\n2\n1\n0";
input = input.split("\n");
for (var i =0; i<input.length; i++) {
   var tab = input[i].split(" ") ;
    alert(tab.join("-")) ;
}