0

我有以下文字,

              Name:Jon
               Age:25
              Gender:Male

如何拆分它以获得以下结果,

              Jon
              25
               Male

如果我用这个,

           var results = file.split(":");

我得到 results[0]=Name,results[1]=JonAge,results[2]=25Gender,当我给的时候,

            var results = file.split("\n");

我得到结果[0]=姓名:乔恩,结果[1]=年龄:25,...

但我无法得到上述内容,如何同时检查冒号或新行?

4

3 回答 3

4

您需要先在换行符上拆分,然后是冒号:

file.split('\n').map(function(line){return line.split(':')[1];})

显然,这可以通过一个循环来完成,但是这个map函数使它变得漂亮而整洁。

您还可以使用正则表达式:

file.match(/[^:]+$/gm)

最后,您可以通过创建适用于数组的拆分函数来扩展数组的功能:

Array.prototype.split = function(s) { 
    return this.map( function(x) { return.x.split(s); } ); 
}

然后你可以链接你的拆分,你会得到一个数组数组:

var results = file.split('\n').split(':');
console.log( 'Name: ' + results[0][1] );
console.log( 'Age: ' + results[1][1] );
console.log( 'Gender: ' + results[2][1] );

您选择的方法在很大程度上取决于您想要的“安全”程度。即,您是否担心字段名称或值中的格式错误的输入或冒号....

于 2013-09-27T22:27:56.673 回答
1

你不能。使用 for 循环。

var r = file.split("\n");
var results = [];
for (var i = 0; i < r.length; i++) {
    results[i] = r[i].split(":")[1];
}
于 2013-09-27T22:25:03.137 回答
0

这可以通过两个步骤来完成,首先您需要用换行符分割文本:

lines = str.split( '\n' )

然后遍历每一行并用冒号分割每一行:

final = {};
for ( pair in lines ){
  var split = lines[ pair ].split( ':' );

  var name = split[ 0 ].trim(); //cleaning out any whitespacve
  var value = split[ 1 ].trim(); //cleaning out any whitespacve

  final[ name ] = value;
}

final就是现在:

Object {Name: "Jon", Age: "25", Gender: "Male"}
于 2013-09-27T22:35:57.250 回答